我刚刚开始学习 Common Lisp,我正在阅读的文本使用了一个带有该member
函数的示例。
我不确定这两个代码块之间的区别:
(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
功能的见解,我将不胜感激。