2 part forth (909レス)
1-

902: 01/01(水)10:04 ID:exme2yo6(1) AAS
あけおめ
903
(1): 06/14(土)06:37 ID:3Q/jS2n6(1/2) AAS
forthソースファイルをunices上で実行可能ファイルにする一般的な方法ってある?
PC上を想定していて超リッチなgforthなら #! 機構を想定して#!を\のシノニムとして定義してくれてて助かるんだけれども、これのない場合にも対応したい

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

forth側:
ワード&&(普通未定義)をtrue=-1としてコロン定義、後はコメント
sh側: :コマンドが成功したらtrueコマンドを実行、次にインタプリタを起動
省5
904: 06/14(土)06:52 ID:3Q/jS2n6(2/2) AAS
>>895
forthのrollは n roll でn個先までを1回まわすけど
postscriptのrollは n m roll でn個先までm回まわせてより強力なのよね
mは負でも可で逆回転もできる

あんまりコードに数値を入れるのはbad practiceとはいえforth書いてると時々欲しくなるやつ…
905: 06/21(土)00:54 ID:flEjrxpy(1) AAS
>>903だけど自己解決
: && true ; ( exec forth "$0" -- "$@" )
で行けた
潔癖症ではないから定義されたワード&&は気にしない、たぶん処理系定義の&&は見たこと無いこら潰す事もないはず

一応win32forthとか複数の処理系で
forget &&
て消せたと思うんだけれど、今試してみたらgforthに無いからforgetは非標準ワードなのな
906: 06/21(土)11:16 ID:fGhLJfIJ(1) AAS
こら
907: 06/26(木)14:21 ID:nmyewptE(1) AAS
神経質すぎじゃねる
まあforgetはmarkerで実装できそうな気がする
908: 10/12(日)02:30 ID:DKsy7+ZR(1) AAS
PCで触ってないからunix(shebang)+forth処理系のハックは詳しくないんだけれども、まあ面白そうだね

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

いやまあ消せるんだからマーカーの記録されてるメモリを退避したりリカバリしたり丁寧に管理してやればできるはずだが…
909: 10/17(金)05:21 ID:D1Ebmx1L(1) AAS
別に余計なワードがあろうと問題なくね
たまたま同じ名前のワードを定義したらそれが有効な訳だし
ブートストラップ用途なら別に潰されても困らん、ブートストラップにしか使わんのだからな
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.413s*