Я делаю домашнюю работу на Лиспе, использую для тестирования clisp, загружаю этот код и работаю в clisp
(defun myreverse (thelist)
(reverse thelist)
(print thelist)
(if (equal thelist nil)
nil
(if (consp (first thelist))
(cons (myreverse (reverse (first thelist)))
(myreverse (reverse (rest thelist))))
(cons (first thelist) (myreverse (rest thelist))))))
Я новичок в Лиспе, но этот кодне меняет thelist
, мой вывод:
[18]> (myreverse '(a (b c) d))
(A (B C) D)
((B C) D)
(C B)
(B)
NIL
(D)
NIL
(A (C B) D)
В первой строке моего кода написано (reverse thelist)
, почему это не реверс для первого оператора печати?Я что-то упустил?