我開始給我寫一些Common Lisp,並且只是將一些東西放在一起並對它們進行格式化。我該如何格式化一個共同的lisp alist?
讓我們假設我有一個ALIST,像這樣:
(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)))
?
MAPCAR是多給點... – skypher 2009-08-13 13:22:15