[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 10/21 01:06 / Filesize : 204 KB / Number-of Response : 917
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

2 part forth



1 名前:デフォルトの名無しさん [04/01/10 03:45.net]
第四世代

910 名前:デフォルトの名無しさん [2025/06/14(土) 06:37:53.81 ID:3Q/jS2n6.net]
forthソースファイルをunices上で実行可能ファイルにする一般的な方法ってある?
PC上を想定していて超リッチなgforthなら #! 機構を想定して#!を\のシノニムとして定義してくれてて助かるんだけれども、これのない場合にも対応したい

思い付いたのは
: && true ; \ exec forth "$0" -- "$@"

forth側:
ワード&&(普通未定義)をtrue=-1としてコロン定義、後はコメント
sh側: :コマンドが成功したらtrueコマンドを実行、次にインタプリタを起動

なんだけれどsh側では
" exec" "forth" ...
とトークン化されてcommand not found
\execとスペース開けずに書けたら良いんだけどするとforthはコメントとして認識しない

何かいい知恵あったら教えてください

911 名前:デフォルトの名無しさん [2025/06/14(土) 06:52:21.04 ID:3Q/jS2n6.net]
>>902
forthのrollは n roll でn個先までを1回まわすけど
postscriptのrollは n m roll でn個先までm回まわせてより強力なのよね
mは負でも可で逆回転もできる

あんまりコードに数値を入れるのはbad practiceとはいえforth書いてると時々欲しくなるやつ…

912 名前:デフォルトの名無しさん [2025/06/21(土) 00:54:36.13 ID:flEjrxpy.net]
>>910だけど自己解決
: && true ; ( exec forth "$0" -- "$@" )
で行けた
潔癖症ではないから定義されたワード&&は気にしない、たぶん処理系定義の&&は見たこと無いこら潰す事もないはず

一応win32forthとか複数の処理系で
forget &&
て消せたと思うんだけれど、今試してみたらgforthに無いからforgetは非標準ワードなのな

913 名前:デフォルトの名無しさん [2025/06/21(土) 11:16:23.88 ID:fGhLJfIJ.net]
こら

914 名前:デフォルトの名無しさん [2025/06/26(木) 14:21:09.64 ID:nmyewptE.net]
神経質すぎじゃねる
まあforgetはmarkerで実装できそうな気がする

915 名前:デフォルトの名無しさん [2025/10/12(日) 02:30:37.41 ID:DKsy7+ZR.net]
PCで触ってないからunix(shebang)+forth処理系のハックは詳しくないんだけれども、まあ面白そうだね

ワードを消すforgetは任意のワード対象、で良かったかな(たしかそう)
しかしmarkerは事前に設定したマーカーまでオフセットずらして巻き戻し、よってそれまでのワードがリセットされる仕組みだったはずだから、任意ワードを、特に名指しで消すには不向きでは

いやまあ消せるんだからマーカーの記録されてるメモリを退避したりリカバリしたり丁寧に管理してやればできるはずだが…

916 名前:デフォルトの名無しさん [2025/10/17(金) 05:21:31.52 ID:D1Ebmx1L.net]
別に余計なワードがあろうと問題なくね
たまたま同じ名前のワードを定義したらそれが有効な訳だし
ブートストラップ用途なら別に潰されても困らん、ブートストラップにしか使わんのだからな






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<204KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef