:
NIL
自己評価記号(symbol-value
自体であるシンボルのうちの1つ)です。ブール値で動作するすべての関数は、このシンボルをfalseと認識します。シーケンスまたはコンスセルで動作するすべての関数は、このシンボルを空のリストとして認識します。実際にはnil
が他のコンテキスト(書式など)で使用されており、nil
が意味することができる独自の関数を定義することができます(慣例により、しばしば "空"、 "ゼロ"、 "未定義"です。 ..)。評価する(list)
はnil
を返します。
(NIL)
は、1つの要素のリスト、NIL
です。
(cons nil nil)
または(list nil)
を評価することによって得ることができます。あなたははこれを読んでいるかのよう
((b c)(r p))
は...あなたは同じ構造を得る:あなたはそれにlength
を適用する場合は、このフォームを読んだとき、それは1
を返します。
((b . (c . nil)) . ((r . (p . nil)) . nil))
...と同じ構造です。と評価されています:次に
(cons ;; CAR
(cons ;; CAAR
'b
;; CDAR
(cons 'c
nil))
;; CDR
(cons (cons 'r
(cons 'p
nil))
nil))
、それを覚えて:
(CADR X) = (CAR (CDR X))
を...し、それに応じて、各コンスセルに従ってください。たとえば:
(CDADR X) = (CDR (CAR (CDR X)))
あなたはインサイドアウトから評価し、ルート要素から始めて、それに応じてコンスセルの木に降りますその前の結果、上の各機能を適用します。 つまり、ルート要素から開始し、CDRに降りて、結果のCARを取るなどします。これをやります。結果は(NIL)
またはNIL
ではありません。
あなたはそれを試してみることができます。 –