帮助理解lisp中的这一行

nei*_*eil 3 lisp common-lisp

(defun dump-db ()
  (dolist (cd *db*)
    (format t "~{~a:~10t~a~%~}~%" cd)))
Run Code Online (Sandbox Code Playgroud)

dolist使*db*变量对应的列表的每个元素cd

并且~a意味着以更易读的形式打印它,但这两个让我感到困惑.

~{ ~}这是否意味着中间的任何内容*db*将被格式化为每个元素的方式?

什么是:~{~a:

Fre*_*Foo 10

[]]迭代指令~{[...]告诉FORMAT迭代列表的元素或格式参数的隐式列表.1

:不是一个format指令,它只是在每个元素之后逐字打印:

> (format t "~{~a: ~}" '(foo bar))
FOO: BAR: 
Run Code Online (Sandbox Code Playgroud)

  • @neil:如果这对你有所帮助,那么请考虑接受答案. (2认同)