Lisp格式化过程

4
我开始学习Lisp编程,对于格式化函数感到困难。我的目标是将一个整数子列表的列表打印成每行N个整数,例如:'((1 2 3)(4 5 6)(7 8 9))应该被打印为:
1 2 3 4 5 6 7 8 9
我尝试在格式化过程中使用迭代,但失败了。我写的是:
(format t "~{~S ~}" list)

但是我得到的子列表是“(1 2 3)”,而不是“1 2 3”,所以我尝试了:

(format t "~:{ ~S ~}" list)

这次我进入了子列表,但只打印出了第一个元素,所以我进一步修改了函数如下:
(format t "~:{ ~S ~S ~S ~}" list)

它适用于具有3个元素的子列表,但我如何使其适用于n个元素?

谢谢!

1个回答

9
(format t "~{~%~{~A~^ ~}~}"  '((1 2 3) (4 5 6) (7 8 9)))

打印

1 2 3
4 5 6
7 8 9

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接