4

私は小さな計画者という本を読んでいます。

それを読む前に、私はSICPの最初の 3 つの章を読み終えました。

私の質問は、cons の 2 番目の引数が list でなければならない理由です。

ただし、(cons a b)すべての値 a および b および

(car (cons a b))= a

(cdr (cons a b))= b

4

2 に答える 2

4

の 2 番目の引数cons必ずしもリストではありません。それは、リストを作成している場合にのみリストです (適切であろうとなかろうと)。たとえば、連想リストを作成するときなど、セルのcdr一部がリストでない場合は完全に有効です。cons

(define lookup-table (list (cons 'x 10) (cons 'y 20) (cons 'z 30)))
(assoc 'z lookup-table)
=> '(z . 30)
于 2012-11-26T14:23:55.267 に答える