我开始学习写一些通用Lisp代码,并且正在逐渐理解如何将东西连接在一起并格式化它们。
假设我有一个类似这样的关联列表:
(defvar *map* '((0 . "zero") (1 . "one") (2 . "two")))
我该如何以这种格式进行格式化?
0: zero
1: one
2: two
我在想类似于 (format t "~{~{~a: ~a~}~%~}" *map*)
这样的东西,但因为"zero"不是一个列表,所以会出错。
当然,执行 (format t "~{~a~%~}" *map*)
会输出:
(0 . "zero")
(1 . "one")
(2 . "two")
我想让它按照预期的方式工作,但这并不完全是我想要的。有没有比仅使用 (dolist (entry *mapping*) (format t "~a: ~a~%" (car entry) (cdr entry)))
更好的方法?