我想做一个迭代函数来计算元素el是否是列表的成员并返回一个 原子。
;;;这是清单 (setf lst'(a b c d e 1 2 3 4 5))
;;;这是检查它是否是列表成员的函数。
(defun checklist (a lst)
(if (member a alist)
a))
当我输入输入时 - > (清单1号),它返回数字......但是当我输入字母表时,它会返回错误。 ..任何人都可以帮我说明问题是什么?提前致谢 。
=============================================== =================================
当我输入 - > (问题5)
它给我这样的错误。
CG-USER(7):(问题5) 错误:尝试获取未绑定变量“A”的值。 [条件类型:UNBOUND-VARIABLE]
答案 0 :(得分:2)
那是家庭作业吗?
如果是:
我认为member
对您没用。如果您想要进行迭代解决方案,那么您可以使用DO
或DOLIST
之类的内容。
如果不是:
Common Lisp有一个函数可以按顺序查找元素(list,vector,string,...):FIND
。
已添加:使用(question5 'a lst)
另请注意,您的定义有一个不幸的部分:
(checklist nil '(a b c))
(checklist nil '(a b c nil))
两者都会返回NIL
。
顺便说一下,Touretzky的Lisp入门书可以免费下载:http://www.cs.cmu.edu/~dst/LispBook/ 这本书很好地介绍了Lisp编程的基础知识。