Lisp Scheme Part23at TECHLisp Scheme Part23 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト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はコレクターを作れってことだよね。実行してみるとこうなる。 http://codepad.org/efWZQKk8 8章のテーマは確かに継続渡しなんだけど、無名関数で再帰することを上手にやるのがコレクターってこと。 9章のネタではさらに再帰のさせ方を工夫してやるとYコンビネータを作れるというお話。 P.137からP.140が理解できればコレクターとYコンビネータを両方とも理解できます。頑張れ。 259:デフォルトの名無しさん 08/09/05 16:08:06 Yコンビネータは memoization に役立つんだけど、それとコレクターは瓜二つで8章・9章のもとネタになっています。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch