我遇到此功能的問題two-similar-p
。列表之間的兩個常見元素
(defun two-similar-p (list1 list2)
(mapcar
(lambda (e)
(mapcar
(lambda (e1)
(if (equal e e1) t))
list2))
list1))
但不正確的使用mapcar
,因爲這個函數返回T
或NIL
一個新的列表,但我只需要返回一個true或false。
ex。
(two-similar-p '(2 1 3) '(1 2 3))
==> ((NIL T NIL) (T NIL NIL) (NIL NIL T))
我想用遞歸來比較不同的元素,但我不知道該怎麼做。 我的功能需要像這樣工作:
(two-similar-p '(1 2 3) '(1 4 5)) ; ==> nil
(two-similar-p '(1 2 5) '(1 4 5)) ; ==> t
(two-similar-p '(1 2 6) '(6 4 2)) ; ==> t
有什麼建議嗎?
爲什麼第一個例子返回'nil'? – melpomene
ops,對不起,第一個例子返回nil,因爲它們沒有至少兩個相等的元素。 –
你需要使用'mapcar'嗎? – sds