Ich fange gerade an, mir etwas Common Lisp zu schreiben und bekomme gerade den Dreh raus, wie man Dinge zusammenfügt und formatiert.
Nehmen wir an, ich habe eine Liste, etwa diese:
(defvar *map* '((0 . "zero") (1 . "one") (2 . "two")))
Wie kann ich es so formatieren?
0: zero
1: one
2: two
Ich dachte an etwas wie (format t "~{~{~a: ~a~}~%~}" *map*)
, aber das führt zu einem Fehler, weil "zero" keine Liste ist und man das Auto nicht daraus nehmen kann.
Natürlich ist das (format t "~{~a~%~}" *map*)
druckt
(0 . "zero")
(1 . "one")
(2 . "two")
wie es sein soll, aber es ist nicht ganz das, was ich will. Gibt es einen besseren Weg, dies zu tun als nur (dolist (entry *mapping*) (format t "~a: ~a~%" (car entry) (cdr entry)))
?