Генерация всех перестановок заданного списка - Lisp

Узнай цену своей работы

Формулировка задачи:

Помогите решить задачу: Написать программу, возвращающую список всех перестановок элементов данного списка по примеру:
Листинг программы
  1. Заданное выражение:
  2. Описать функцию, возвращающую максимальную глубину списка.
  3. РЕШЕНИЕ:
  4. (defun depth (L)
  5. (labels
  6. ( ( depth-iter (L newL curDept cnt)
  7. (if (null L)
  8. (if (= cnt 0) curDepth
  9. (depth-iter newL () (+ curDepth 1) 0 ))
  10. (let ((fstL (car L)))
  11. (if (listp fstL)
  12. (depth-iter (cdr L)
  13. (append fstL newL)
  14. curDepth
  15. (+ 1 cnt))
  16. (depth-iter (cdr L) newL curDepth cnt ))))) )
  17. (depth-iter L () 1 0 )))
  18. (print (depth '( A B (C ((D E) F (G) H) I (J (K () L)))
  19. (M (N ((O P ())) Q ((R) (S T))) (U ((V) W)))
  20. ((X) ()) (((((() Y))))) )))
  21. (print (depth '(() (()))))
  22. (print (depth '(())))
  23. (print (depth '()))
заранее спасибо

Решение задачи: «Генерация всех перестановок заданного списка»

textual
Листинг программы
  1. "Masha ela kashu" [ blank? ] split-when all-permutations [ " " join capitalize1 ] map [ print ] each

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы