我编写了一个函数,给出两个列表中元素的所有组合,
(defun comb (x y &optional (h y) (d nil))
(if x
(if y
(comb x (cdr y) h (cons (cons (car x) (car y)) d))
(comb (cdr x) h h d))
d))
例如
(comb '(1 2) '('a 'b))
-> ( (2 . b) (2 . a) (1 . b) (1 . a) )
但是我很难将其概括为与任意多个列表兼容, 我知道你可以将此函数嵌套在 4 8 等不同列表的树状结构中,但这会搞砸输出格式,这不是我想要的解决方案。