내 목록을 반대하지 않습니다, 나는리스프는 테스트 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))))))
나는 새로운 종류의이야이 코드를로드하고 CLISP에서의 실행 해요 리스프하지만이 코드는 모든 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)
라고? 내가 놓친 게 있니?
'(null thelist)'는 Common Lisp에서'(equal thelist nil)'보다 관용적이다. –