繰り返し(while) - lisp-cookbook-ja/common-lisp GitHub Wiki
Common LispにはEmacs Lispの様なwhileは存在しませんが、loopを使うか、必要ならば、簡単なマクロを書くことで実現できます。
また、ユーティリティ系のライブラリにも良く含まれています。
loopマクロで
(loop :while (not (zerop (random 10)))
:do (princ "."))
;-> .....
;=> NIL
自作
(defmacro while (test &body body)
`(do ()
((not ,test))
,@body))
(while (not (zerop (random 10)))
(princ "."))
;-> ............
;=> NIL