Lisp 格式过程应用于数组
我需要一些有关 format
函数和数组的帮助。
我的目标是将 N·N 个整数值的二维数组打印为每行 N 个整数。例如:
#2A((1 2 3)
(4 5 6)
(7 8 9))
应该打印,因为
1 2 3
4 5 6
7 8 9
我找不到任何有关如何使用 format
打印数组的文档。它实际上可以完成吗?或者我应该将数组转换为列表并使用类似以下内容的内容:
(format t "~{~%~{~A~^ ~}~}" list)
I need some help with the format
function and arrays.
My objective is to print a 2 dimensional array of N·N integer values as N integers per line. For example:
#2A((1 2 3)
(4 5 6)
(7 8 9))
should be printed as
1 2 3
4 5 6
7 8 9
I couldn't find any documentation on how to use format
to print arrays. Can it actually be done, or should I convert my array into a list and use something like:
(format t "~{~%~{~A~^ ~}~}" list)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果我没记错的话,
format
没有直接的方法来“进入”数组。您可以编写自己的函数,由波浪号斜杠使用(~/function/
,请参阅CLHS),或者您可以将数组强制到一个列表并使用您建议的指令,或者~/pprint-tabular/
。如果您想定义自己的,CLHS 有pprint-tabular
的示例代码,您可以针对数组进行修改。If I am not mistaken, there is no direct way for
format
to go "into" an array. You could write your own function, to be used by tilde-slash (~/function/
, see CLHS), or you could coerce the array to a list and use either the directives you proposed, or~/pprint-tabular/
. If you want to define your own, the CLHS has example code forpprint-tabular
which you could modify for arrays.