可以使用~{和~}指令遍历列表。
CL-USER> (format t "~{~a, ~}~%" '(1 2 3 4 5)) 1, 2, 3, 4, 5,
~^ 如果没有更多元素了,可以用来转义。
CL-USER> (format t "~{~a~^, ~}~%" '(1 2 3 4 5)) 1, 2, 3, 4, 5
可以使用数字参数~{来限制可以执行的迭代次数:
CL-USER> (format t "~3{~a~^, ~}~%" '(1 2 3 4 5)) 1, 2, 3,
~@{ 将遍历其余参数,而不是列表:
CL-USER> (format t "~a: ~@{~a~^, ~}~%" :foo 1 2 3 4 5) FOO: 1, 2, 3, 4, 5
子列表可以使用~:{以下命令进行迭代:
CL-USER> (format t "~:{(~a, ~a) ~}~%" '((1 2) (3 4) (5 6))) (1, 2) (3, 4) (5, 6)