Консультация № 193679
12.10.2018, 09:38
0.00 руб.
0 0 0
Здравствуйте! Прошу помощи в следующем вопросе:

На языке Lisp напишите рекурсивную функцию от двух аргументов х и n , которая создает список вида (x (x) ((x)) …), где максимальная вложенность последнего элемента равна n.

Приложение:
(defun Copy (n w &optional (m n))
(cond ((null w) nil)
((= m 1) (cons (car w) (Copy n (cdr w) n)))
(t (cons (car w) (Copy n w (1- m))))))



(print(Copy 10 '(x)))




(defun F (x n) (cond ((= n 0) x)
(t (list (F x (- n 1))))))
(print(F '(x) 10))

;; Решение задачи

(defun End (x &optional (level 0))
(cond ((null x) nil)
(t (append (list (F (car (Copy 10 '(x))) level)) (End (cdr x) (+ 1 level))))))


(print (End '(x x x x) 10))

Обсуждение

Форма ответа