Lisp Scheme Part18
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
100:little schemer 07/08/24 12:07:05 99です。 上記の質問よりも、最後のelse以下のところをどのように理解すればよいのか ヒントとかをもらえたら助かります。上記の処理の内容は、 (multirember-co 'a '(a b c) (lambda (x y) x)) => (b c) というように、1つめの引数(atom)を2つめの引数(list)から取る処理です。 このとき、2つめの引数が((a b) a b c d)の時に、つまり(car lat)が atomでないときの動作が理解しにくいです。一旦(car lat)に対する処理を 行って、それが最後までいった後に、残りの(cdr lat)への処理を続ける のだと思うのですが、、、、 長々と失礼しました。 101:デフォルトの名無しさん 07/08/24 13:34:47 >>97 アーランは既に JIT あるじゃん。 102:デフォルトの名無しさん 07/08/24 14:18:14 >>99-100 その本は読んでないのでコード見た印象で。 要は継続渡しなんだと思うけど、else のところは 1 まず (car lat) に対する処理をする 2 次に (cdr lat) に対する処理をする 3 二つの結果を cons してから残りの処理をする という手順で処理するということが書いてある。 > (lambda (newlat seen) > (multirember-co a (cdr lat) (lambda (newlat2 seen2) > (col (cons newlat newlat2) > (cons seen seen2))))) ここが 2,3 をまとめたもので、これを 1 のあとにやるべき処理として渡してる。 その内側の lambda が 3 に対応してる。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5091日前に更新/189 KB
担当:undef