check元素是否为列表成员

时间:2012-07-13 07:19:54

标签: 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号),它返回数字......但是当我输入字母表时,它会返回错误。 ..任何人都可以帮我说明问题是什么?提前致谢 。

=============================================== =================================

当我输入 - > (问题5)

它给我这样的错误。

CG-USER(7):(问题5) 错误:尝试获取未绑定变量“A”的值。 [条件类型:UNBOUND-VARIABLE]

1 个答案:

答案 0 :(得分:2)

那是家庭作业吗?

如果是:

我认为member对您没用。如果您想要进行迭代解决方案,那么您可以使用DODOLIST之类的内容。

如果不是:

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编程的基础知识。