【发布时间】:2016-06-22 19:04:15
【问题描述】:
此函数的目标是生成 2 个列表的笛卡尔积。 例如
-
(combo (list 1 2 3) (list 4 5)) => (1 4) (1 5) (2 4) (2 5) (3 4) (3 5)
(defun combo (l1 l2) (let ( (res (list)) ) (dolist (elem1 l1 res) (dolist (elem2 l2 res) (setq res (append res (list(list elem1 elem2)))) ) ) ))
如何递归实现?
【问题讨论】:
-
可以,可以递归实现。
-
请注意,您的功能非常低效。检查 APPEND 的使用情况。
标签: lisp common-lisp