Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 检查项目是否在列表中(Lisp)_List_Lisp_Common Lisp - Fatal编程技术网

List 检查项目是否在列表中(Lisp)

List 检查项目是否在列表中(Lisp),list,lisp,common-lisp,List,Lisp,Common Lisp,检查项目是否在列表中的简单方法是什么 差不多 (in item list) 如果item=1和list=(5 9 12)和false如果item=7您可以使用find: (find 1 '(5 9 1 2)) ; 1 (find 7 '(5 9 1 2)) ; nil 考虑使用:test参数: (find "a" '("a" "b") :test #'equal) 通用Lisp 查找不是一个好主意: > (find nil '(nil nil)) NIL 以上说明NIL不在列表中(

检查项目是否在列表中的简单方法是什么

差不多

(in item list)

如果
item=1
list=(5 9 12)
false
如果
item=7
您可以使用
find

(find 1 '(5 9 1 2)) ; 1
(find 7 '(5 9 1 2)) ; nil
考虑使用
:test
参数:

(find "a" '("a" "b") :test #'equal)

通用Lisp

查找
不是一个好主意:

> (find nil '(nil nil))
NIL
以上说明
NIL
不在列表中
(NIL-NIL)
-这是错误的

FIND
的目的不是检查成员资格,而是查找满足测试的元素(在上例中,测试函数是通常的默认值
EQL
FIND
返回这样的元素

使用
成员

> (member nil '(nil nil))
(NIL NIL)  ; everything non-NIL is true
位置

> (numberp (position nil '()))
NIL

使用
MEMBER
测试项目是否在列表中:

(member 1 '(5 9 1 2))  ; (1 2)

FIND
不同,它还能够测试
NIL
是否在列表中。

(FIND NIL'(NIL NIL))->nilI实际上并不喜欢这个建议。成员从找到元素的位置返回列表。该问题要求类似谓词的内容,返回
T
NIL
。因此,我建议这个答案应该包装在一个
if
中,所有定义为任何阅读此页面的人都在寻找的函数:
(defun包含(项目序列)(if(成员项目序列)T NIL))