我开始给我写一些Common Lisp,并且正在掌握将事物组合在一起并格式化它们的窍门。
假设我有一个列表,如下所示:
(defvar *map* '((0 . "zero") (1 . "one") (2 . "two")))
我该如何格式化它?
0: zero
1: one
2: two
我在想类似的东西(format t "~{~{~a: ~a~}~%~}" *map*)
,但这给出了一个错误,因为“零”不是一个列表,你不能拿它的车。
当然,做(format t "~{~a~%~}" *map*)
打印
(0 . "zero")
(1 . "one")
(2 . "two")
就像它应该的那样,但这并不是我想要的。有没有更好的方法来做到这一点(dolist (entry *mapping*) (format t "~a: ~a~%" (car entry) (cdr entry)))
?