我遇到了此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。我究竟做錯了什麼 ?
正確縮進你的代碼。看到表單被正確嵌套。 –