检查项目是否在列表中的简单方法是什么?
就像是
(in item list)
如果
true
和item=1
以及list=(5 9 1 2)
可能返回false
最佳答案
常见Lisp FIND
不是一个好主意:
> (find nil '(nil nil))
NIL
上面的意思是
NIL
不在列表(NIL NIL)
中-这是错误的。FIND
的目的不是检查成员资格,而是查找一个满足测试要求的元素(在上面的示例中,测试功能是通常的默认EQL
)。 FIND
返回这样的元素。使用
MEMBER
:> (member nil '(nil nil))
(NIL NIL) ; everything non-NIL is true
或
POSITION
:> (numberp (position nil '()))
NIL