RosettaCodeData/Task/Look-and-say-sequence/Common-Lisp/look-and-say-sequence-3.lisp
Ingy döt Net db842d013d A-M baby
2013-04-10 21:29:02 -07:00

11 lines
308 B
Common Lisp

(defun look-and-say (s)
(let ((out (list (char s 0) 0)))
(loop for x across s do
(if (char= x (first out))
(incf (second out))
(setf out (list* x 1 out))))
(format nil "~{~a~^~}" (nreverse out))))
(loop for s = "1" then (look-and-say s)
repeat 10
do (write-line s))