私のリストを逆転されていない、と私はLispはテストするためにCLISPを使用して、私はLispでのいくつかの宿題をやっている
(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にで実行していますLispのが、このコードはまったくthelist
を逆転されていない、私の出力は次のようになります。
[18]> (myreverse '(a (b c) d))
(A (B C) D)
((B C) D)
(C B)
(B)
NIL
(D)
NIL
(A (C B) D)
私のコードの最初の行は、なぜそれが最初のprint文のために逆転されていない(reverse thelist)
言いますか?何か不足していますか?
'(null thelist)'はCommon Lispの '(equal thelist nil)'よりも慣用です。 –