Я пытаюсь написать декодер, который использует 26 английских букв. Но с 26! слишком много для вычисления, функция My Permutation не может вернуть общий список, поэтому я хочу вернуть эти элементы один за другим, чтобы оценить их отдельно. Если бы кто-нибудь помог мне, это было бы здорово. Ниже приведена функция перестановки.
(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)))
)
)
)