Lisp Scheme Part23
at TECH
258:デフォルトの名無しさん
08/09/05 15:46:59
P.137の multirember&co の定義で2つコレクター出てくる。
ひとつは
(lambda (newlat seen)
(col newlat
(cons (car lat) seen)))
もうひとつは
(lambda (newlat seen)
(col (cons (car lat) newlat)
seen))
実は2つとも無名関数で再帰をしている。このコレクターが再帰のたびに別な関数になっていることをちゃんと理解できてるかな?
これが分かるならP.140までは理解できているはず。つまりTenth Commandmentはコレクターを作れってことだよね。実行してみるとこうなる。
URLリンク(codepad.org)
8章のテーマは確かに継続渡しなんだけど、無名関数で再帰することを上手にやるのがコレクターってこと。
9章のネタではさらに再帰のさせ方を工夫してやるとYコンビネータを作れるというお話。
P.137からP.140が理解できればコレクターとYコンビネータを両方とも理解できます。頑張れ。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5380日前に更新/75 KB
担当:undef