(defun my-nreverse-1 (l)
(my-nreverse-1-aux l nil))
(defun my-nreverse-1-aux (l next)
(if (null l)
next
(let ((buf (rest l)))
(setf (rest l) next)
(my-nreverse-1-aux buf l))))
(defparameter *x* '(1 (2 3) 4 (5 6) 7 8))
(princ (nreverse *x*))
KGRlZnVuIG15LW5yZXZlcnNlLTEgKGwpCiAgKG15LW5yZXZlcnNlLTEtYXV4IGwgbmlsKSkKCihkZWZ1biBteS1ucmV2ZXJzZS0xLWF1eCAobCBuZXh0KQogIChpZiAobnVsbCBsKQogICAgICBuZXh0CiAgICAgIChsZXQgKChidWYgKHJlc3QgbCkpKQogICAgICAgIChzZXRmIChyZXN0IGwpIG5leHQpCiAgICAgICAgKG15LW5yZXZlcnNlLTEtYXV4IGJ1ZiBsKSkpKQoKKGRlZnBhcmFtZXRlciAqeCogJygxICgyIDMpIDQgKDUgNikgNyA4KSkKKHByaW5jIChucmV2ZXJzZSAqeCopKQ==