単純な (1 次元の) リストの要素を逆にする必要があります。組み込みのリバース機能があることは知っていますが、これには使用できません。
これが私の試みです:
(defun LISTREVERSE (LISTR)
(cond
((< (length LISTR) 2) LISTR) ; listr is 1 atom or smaller
(t (cons (LISTREVERSE (cdr LISTR)) (car LISTR))) ; move first to the end
)
)
出力はかなり近いですが、間違っています。
[88]> (LISTREVERSE '(0 1 2 3))
((((3) . 2) . 1) . 0)
だから私はappend
代わりに使用しようとしましたcons
:
(t (append (LISTREVERSE (cdr LISTR)) (car LISTR)))
しかし、このエラーが発生しました:
*** - APPEND: A proper list must not end with 2
何か助けはありますか?