This Common Lisp program is an exercise to print an integer and its digits reversed to the screen:(defun read-number () (format t Enter a number: ~%) (read))(defun reverse-string (the-string)   (if (eq (length the-string) 0)          (concatenate 'string (reverse-string (subseq the-string 1)) (subseq the-string 0 1))))(defun reverse-digits (the-number) (reverse-string (write-to-string the-number)))(let ((the-number (read-number)))  (format t N->: ~a~%<-N: ~a~% the-number (reverse-digits the-number)))
Print an integer and its digits reversed
strings;lisp;common lisp
This problem is more about numbers than strings, so I felt the need to post a non-string-based solution. I've got my original Scheme version, and a Common Lisp adaptation of same.Scheme version:(define (reverse-digits n)  (let loop ((n n) (r 0))    (if (zero? n) r        (loop (quotient n 10) (+ (* r 10) (remainder n 10))))))Common Lisp translation of the Scheme version:(defun reverse-digits (n)  (labels ((next (n v)             (if (zerop n) v                 (multiple-value-bind (q r)                     (truncate n 10)                   (next q (+ (* v 10) r))))))    (next n 0)))