list - Lisp 格式程序

标签 list lisp integer format

我开始用 Lisp 编程,但很难使用 Format 函数。

我的目标是将整数子列表的列表打印为一行的 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 个元素?

谢谢!

最佳答案

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

打印

1 2 3
4 5 6
7 8 9

关于list - Lisp 格式程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235817/

相关文章:

ios - 随机生成 "-1"或 "1"- 最短方法

c++ - 嵌套的 STL 列表

列表的 Python 问题(TypeError : 'NoneType' object is not iterable)

lisp - 为什么 (list + 1 2) 在 Common Lisp 中计算为 ('(+ 1 2) 1 2)

lisp - 代码作为系统镜像(序列化运行时环境)与源代码(文本)

c++ - 只要用户输入,如何从用户那里获取整数?

list - "Something' s 错误,可能是使用 itemize 时缺少\item"错误

python - 如何删除列表中的所有奇数项?

方案:列表计数器

arrays - golang 中包含整数和 nil 值的数组?