Common Lisp を学び始めたばかりで、読んでいるテキストでは関数の例を使用していmember
ます。
これら 2 つのコード ブロックの違いがよくわかりません。
(if (member nil '(1 nil 2 3))
'contains-nil
'does-not-contain-nil)
CONTAINS_NIL を返します
(if (member nil '(1 2 3))
'contains-nil
'does-not-contain-nil)
DOES-NOT-CONTAIN-NIL を返します
私が理解していることから、リストはネストされたセルと同等であるため、を返すcons
と思いますが、 を返すだけです。コンパイラーやインタープリターがその区別をどのように行うかはわかりません。関数を実装する方法について誰かが私に洞察を与えることができれば、感謝します。(member nil (cons 1 (cons 2 (cons 3 nil)))
(nil)
nil
member