Генерация всех перестановок заданного списка - Lisp
Формулировка задачи:
Помогите решить задачу:
Написать программу, возвращающую список всех перестановок элементов данного списка по примеру:
заранее спасибо
Заданное выражение: Описать функцию, возвращающую максимальную глубину списка. РЕШЕНИЕ: (defun depth (L) (labels ( ( depth-iter (L newL curDept cnt) (if (null L) (if (= cnt 0) curDepth (depth-iter newL () (+ curDepth 1) 0 )) (let ((fstL (car L))) (if (listp fstL) (depth-iter (cdr L) (append fstL newL) curDepth (+ 1 cnt)) (depth-iter (cdr L) newL curDepth cnt ))))) ) (depth-iter L () 1 0 ))) (print (depth '( A B (C ((D E) F (G) H) I (J (K () L))) (M (N ((O P ())) Q ((R) (S T))) (U ((V) W))) ((X) ()) (((((() Y))))) ))) (print (depth '(() (())))) (print (depth '(()))) (print (depth '()))
Решение задачи: «Генерация всех перестановок заданного списка»
textual
Листинг программы
"Masha ela kashu" [ blank? ] split-when all-permutations [ " " join capitalize1 ] map [ print ] each
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д