Lisp 检查元素是否为列表的成员
我想做一个迭代函数来计算元素el是否是列表的成员并返回 原子 ;;;这是名单 (setf lst’(a b c d e 1 2 3 4 5)) ;;;此函数用于检查它是否是列表的成员Lisp 检查元素是否为列表的成员,lisp,common-lisp,membership,Lisp,Common Lisp,Membership,我想做一个迭代函数来计算元素el是否是列表的成员并返回 原子 ;;;这是名单 (setf lst’(a b c d e 1 2 3 4 5)) ;;;此函数用于检查它是否是列表的成员 (defun checklist (a lst) (if (member a alist) a)) 当我输入->(清单1 lst)时,它返回数字。。。但当我输入字母表时,它会返回错误。。任何人都可以帮我说明问题出在哪里??提前谢谢 =============
(defun checklist (a lst)
(if (member a alist)
a))
当我输入->(清单1 lst)时,它返回数字。。。但当我输入字母表时,它会返回错误。。任何人都可以帮我说明问题出在哪里??提前谢谢
================================================================================
当我输入-->(问题5 a lst)
它给我这样的错误
CG-USER(7):(问题5 a lst)
错误:尝试获取未绑定变量“A”的值。
[条件类型:未绑定变量]这是家庭作业吗
如果是:
我不认为会员对你有用。如果你想做一个迭代解,那么你可以使用类似于do
或DOLIST
的方法
如果否:
Common Lisp有一个函数,可以按顺序查找元素(列表、向量、字符串等):FIND
新增:使用(问题5'a lst)
还要注意,您的定义有一个不幸的部分:
(checklist nil '(a b c))
(checklist nil '(a b c nil))
两者都将返回NIL
顺便说一句,Touretzky的Lisp介绍书可免费下载:
这本书很好地介绍了Lisp编程的基础知识。只要向我们展示错误是如何发生的。我把错误放在上面。a
是一个变量。你需要引用它,这样它就成为一个符号,不会被评估。谢谢。。我知道我在哪里做了错事。。谢谢你这是一个家庭作业。。我和我的朋友很长一段时间都把它弄糊涂了,所以去那里问问吧。。如果wan实施do或dolist,如何实施??我还没学会。。