要するにwrite相当を実装しろってことでしょ?

(defun write-list(exp)
(princ "[")
(loop (if (not (consp exp)) (return))
(write (car exp))
(setq exp (cdr exp))
(if (consp exp) (princ " ")
(if (not (null exp))
(progn (princ " . ") (write exp)))))
(princ "]"))

(write-list '(a b c . d))
[A B C . D]
write本体は自分で考なよおじさん


ちなみに俺もCommonLisp初めてなんだけど、
whileって無いみたいね。
上の(loop (if (not (consp exp)) (return)) 〜 )
てかなりマヌケな気がするんだけど、もっと簡単にできない?
whileがあれば(while (consp exp) 〜)で済むのに