Project Euler #35 in Common Lisp
In list-&gt;num you can count down with something like for i downfrom n.

(defun num-&gt;list (n)
  (loop for c across (write-to-string n)
        collect (parse-integer (string c))))


In above function you can just collect (digit-char-p c). The function returns the digit value as a number.