我需要一些关于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)
我需要一些关于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)
format
没有直接进入数组的方法。您可以编写自己的函数供波浪号斜杠 (~/function/
, 参见CLHS) 使用,或将数组强制转换为列表并使用您提出的指令或~/pprint-tabular/
。如果您想定义自己的函数,CLHS有关于 pprint-tabular
的示例代码,您可以修改它来适用于数组。(defun show-board (board)
(loop for i below (car (array-dimensions board)) do
(loop for j below (cadr (array-dimensions board)) do
(let ((cell (aref board i j)))
(format t "~a " cell)))
(format t "~%")))