我正在尝试编写一个使用26个英文字母的解码器。但从26岁开始!太多了,无法计算,我的置换函数无法返回整个列表,所以我想逐个返回这些元素,以便分别对它们进行评估。如果有人帮我,那就太棒了。下面是排列函数。
(defun permutations (coll)
(if (not (cdr coll))
(list (first coll))
(loop for el in coll nconc
(mapcar #'(lambda (combos)
(cons el combos))
(permutations (remove el coll)))
)
)
)
您可以使用库alexandria
中的map-permutations
。