例えば RnRS の call/cc を使ってこういうのを書いたとする。
(define (foo x)
(+ 3
(call/cc
(lambda(cc)
(if (> x 3) (cc (+ x 1)) x)))))
(display (foo 1)) (display (foo 5))
継続とは何かというのを綺麗に説明するのは難しいけど、
「残りの計算」という言葉で説明するのが一般的だね。
この例でいえば call/cc を呼出された後にするはずの計算、
すなわち「 (+ 3 」が変数 cc に入っている継続。
call/cc を呼出している外側全てと言い換えてもいいかもしれない。
(字句上の外側ではなくて実行時の外側。)
で、 >>209 の言うところの call/cc (名前がまぎらわしいから
ここでは call/cc* と変える) は残りの計算を陽に引数として
渡すバージョンということだと思う。
最初の例を call/cc* で書き直すと
(define (foo* x)
(call/cc*
(lambda(x)(+ 3 x))
(lambda(cc f)
(if (> x 3) (cc (+ x 1)) (f cc x)))))
(display (foo* 1)) (display (foo* 5))
となる。
「(+ 3」の計算を (lambda(x)(+ 3 x)) というクロージャにして渡しているのが
わかるかな。
Lisp Scheme Part40 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
210はちみつ餃子 ◆8X2XSCHEME
2015/09/05(土) 21:46:57.65ID:H6CjR/B1■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 戦略的互恵関係望むなら答弁撤回せよと中国 [どどん★]
- 立憲・野田代表が主張 台湾有事答弁で「質問者批判は筋違い」「答弁がおかしい」「高市総理迎合のネット世論は危険」★3 [♪♪♪★]
- 【速報】 植田日銀総裁 「円安進行が物価高を起こしている」 ★3 [お断り★]
- 「ふざけんな!」 国会議員給与、『月5万円増』報道にネット騒然 「国民が物価高で困っているのに」「定数削減とか言いながら…」 [♪♪♪★]
- 【速報】 植田日銀総裁 「円安進行が物価高を起こしている」 ★2 [お断り★]
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★11 [BFU★]
- 【速報】高市早苗「答弁撤回はしない」経済制裁へ [931948549]
- 【悲報】高市答弁、誤解だった [834922174]
- 架空を滑空ビューーーン👊😅👊三三☁😶‍🌫🏡
- 戦略的互恵関係望むなら答弁撤回せよと中国。高市、もう後がなくなる [805596214]
- 【鈴木早苗】お米券おひとり様3000円に閣議決定 [993451824]
- LGのテレビ、最新モデルでリモコンのほとんどのボタン消したのにジャップ向けだけそのままなんだが [821395612]
