2 part forth (907レス)
2 part forth http://mevius.5ch.net/test/read.cgi/tech/1073673931/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
62: デフォルトの名無しさん [] 04/02/20 12:42 懲りずに第5問。 : foo ." 1 " resume ." 2 " resume ; : bar ['] foo call/cc ." 3 " resume ." 4 " drop ; で、barを実行すると、 1 3 2 4 と表示するような、resumeとcall/ccをがんがって定義してみれ。 ちなみに、この2つのワードは以下のスタックコメントに示すような 引数と返り値を持つものとする。 resume ( continuation -- continuation' ) call/cc ( xt -- continuation ) # ワード名とスタックコメントの名前がアレですが、 # 字面に惑わされなければ、仕様を満たすのは簡単なはず。 # 第3問〜第5問は基本的に同じカラクリ、というのがヒント。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/62
65: _| ̄|○ [sage] 04/02/23 20:44 ホント、人が居ないyo....._| ̄|○ 誰も見てないかもしれないけど解答編。 >>56 : twice r> dup >r >r ; >>59 : reverse r> r> swap r> swap >r swap >r >r ; >>62 : resume r> swap >r ; : call/cc r> swap execute ; ‥‥リターンスタックをいじるとヘンなことができて面白いよね。 ‥‥‥‥‥。 _| ̄|○ http://mevius.5ch.net/test/read.cgi/tech/1073673931/65
66: デフォルトの名無しさん [sage] 04/02/24 14:02 >>65 スマン、しばらく見てなかった。 >>56はwordの最後までを二回ってことだったか。 次のwordだけを、かと勘違いしてた。 って>>62はそう書いてるな。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/66
514: デフォルトの名無しさん [sage] 2008/10/11(土) 06:54:12 >>464のやり方だと実行の度にリターンスタックに命令列のコピーが発生するわけだな。 対して普通のForthはリターンアドレス一つのコピーで済む。 Forthでは関数の戻り場所を実行時に入れ替えたりできる( >>59, >>62 ) わけだけど、 >>464のやり方だと命令列自体の入れ替えになるから相当面倒。 Forthの自由度をわざわざ減らしている気がするんだけどな。 でも作るというならがんがれ。 様々な進化があってこそ発展もある。 http://mevius.5ch.net/test/read.cgi/tech/1073673931/514
762: デフォルトの名無しさん [sage] 2015/08/15(土) 15:24:43.03 ID:fkPcgHEe 処理系作ってようやく何やってるのかわかったけど、>>56とか>>62面白いなあ http://mevius.5ch.net/test/read.cgi/tech/1073673931/762
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.034s