我正在尝试使用递归使用一个参数进行配对功能。 但我不知道如何解决这个问题。 这是我的代码:
(defun makepair (l)
(cond ((null l) nil)
((and (atom (car l)) (atom (cdr l))) (list (car l) (cdr l)))
(t (makepair (cdr l)))
)
)
我必须'(1 d 2 c)
到((1 d) (1 2) (1 c) (d 2) (d c) (2 c))
答案 0 :(得分:0)
试试这个:
(defun makepair (l)
(if (atom l) nil
(append (loop for i in (rest l)
collecting (list (car l) i))
(makepair (rest l)))))
答案 1 :(得分:0)
递归版本(根据需要)如下所示:
setInterval