lisp不同长度的两个列表

时间:2017-02-22 14:46:15

标签: lisp common-lisp

我对两个不同长度的列表有困难。

(f '(8 1 2 3 23 12) '(2 9 4 6))应该返回(1 2 3 4 6 8 9 12 23)

这是我尝试的代码。

(defun f (lst lst2)
  (cond ((or(null lst) (null lst2)) 0)
  (t (sort (cons (first lst) (cons (first lst2) (f (rest lst) (rest lst2)))) #'<))))

另外,你能处理lisp中的重复项吗?

我将不胜感激。

1 个答案:

答案 0 :(得分:4)

使用标准功能可以轻松完成。要使用append制作一个列表中的一个,但是最后一个参数是共享的,因此我将其与copy-list一起复制,因为stable-sort具有破坏性。 delete-duplicates删除结果列表中的重复项。

countriesToLiveInDict.removeObject(forKey: "Countries")