LISP Scheme Part7
■ このスレッドは過去ログ倉庫に格納されています
0246デフォルトの名無しさん
NGNG>考え方の前提がおかしいんじゃないか?
>appendの'()を否定するって事は、
すいません、私の誤解かもしれませんので、
(append '()) なのか (append . '()) なのか 書いてください。
>リストが0個の場合でも、それは「空リスト」と言って、
>リストにとっては1つの形態として自然だから。
>'(a b c) => '(a . (b . (c ())))
>(length '(a b c)) => 3 (length '()) => 0
>(length '())でも#fを返せというのか?
いえそういっているのではありません
(length) -> ?
つまり、(length . '()) -> ?
といっているのです。(私の考えでは(length) -> #fでもいいのではないかと)
>>(+ a b c NIL) => (+ a (+ b c NIL)) => (+ a (+ b (+ c NIL))) => (+ a (+ b (+ c (+ NIL))))
もっとくわしく書きたいとおもいます。
(+ a b c . '()) -> (+ a (+ b c . '()))
-> (+ a (+ b (+ c . '()))) -> (+ a (+ b (+ c (+ . '()))))
つまり(+ . '()) -> (+) -> 0 と認識しています。
>>239
(append '() '(a b c . d)) -> '(a b c .d)
のことでしょうか、
括弧をとるflattenは、簡単にかけますが、
アトムを残すatom-flattenは、めんどいことになりませんか?
(atom-flatten '(a b c '(d e f '()) d '())) -> '(a b c d e f '() d '())
■ このスレッドは過去ログ倉庫に格納されています