Print improper lists
authorDavid Vazquez <davazp@gmail.com>
Fri, 28 Dec 2012 01:42:45 +0000 (01:42 +0000)
committerDavid Vazquez <davazp@gmail.com>
Fri, 28 Dec 2012 01:42:45 +0000 (01:42 +0000)
lispstrack.lisp

index 562f004..12fc7c9 100644 (file)
     ((functionp form) (concat "#<FUNCTION>"))
     ((listp form)
      (concat "("
-             (join (mapcar #'print-to-string form)
-                   " ")
+             (join-trailing (mapcar #'print-to-string (butlast form)) " ")
+             (let ((last (last form)))
+               (if (null (cdr last))
+                   (print-to-string (car last))
+                   (concat (print-to-string (car last)) " . " (print-to-string (cdr last)))))
              ")"))))
 
 ;;;; Reader