我遇到了此lisp函数的问题。我想创建一个接收两个列表的函数,并验证第一个列表中的元素(全部)是否出现在第二个列表中,如果发生这种情况,它将返回True。Lisp - Lisp的元素出现在其他列表中
目前,我有以下代码:
(defun ocorre-listas (l1 l2)
(dolist (elem1 l1)
(dolist (elem2 l2)
(if (equal elem1 elem2)
t))))
它不工作,符合市场预期。我应该试着做一个简单的递归吗?我真的没有得到如何我可以遍历这两个列表寻找相同的元素。
,我决定尝试没有dolists。这就是我现在所拥有的,它仍然不起作用。
(defun ocorre-listas (l1 l2)
(cond ((null l1) nil)
((null l2) nil)
((if (/= (first l1)(first l2)) (ocorre-listas l1 (rest l2))))
(t (if (= (first l1) (first l2)) (ocorre-listas (rest l1)(rest l2))))))
我收到一个警告,说“t”是一个未定义的函数。另外,我尝试的每个例子都返回null。我究竟做错了什么 ?
正确缩进你的代码。看到表单被正确嵌套。 –