如何在LISP函数中创建一个大小作为参数接收的数组?

Fri*_*ike 2 lisp arrays

我正在尝试创建一个接收大量行和列的函数,并从中生成一个数组.这就是我做的

(defun create-table (lines columns)
     (make-array '(lines columns)))
Run Code Online (Sandbox Code Playgroud)

我认为这就是你制作多维数组的方法.但是当我调用函数时create-table,例如(create-table 2 2)给出了这个错误

MAKE-ARRAY:维度LINES不是`(INTEGER 0(,ARRAY-DIMENSION-LIMIT))

我不明白,怎么可能不是整数?我应该演员吗?

Rai*_*wig 7

您认为'(lines columns)评价的是什么?

提示:您可以使用该功能创建列表LIST.

  • @FriedRike:所以'(行列)`被评估为'(行列)`。这是一个列表,其第一个元素是符号“ lines”,第二个元素是符号“ columns”。“ MAKE-ARRAY”应该怎么做?`MAKE-ARRAY`需要一个数字列表,而不是符号列表。有效的数组维是一个fixnum,而不是一个符号。 (2认同)
  • 我想我明白了......我必须创建一个列表并将其作为make-array的参数传递.因此?`(make-array(list lines columns))` (2认同)