将参数传递给make-array

时间:2014-11-08 13:03:32

标签: lisp common-lisp

(defun makeAr(li co)
    (make-array '(li co)))

这不起作用,它说li和co是非法的论点,尽管我以此为例:

(make-array 3 3)

这根本行不通。谁知道为什么?

1 个答案:

答案 0 :(得分:4)

make-array将列表中的数组维度作为其第一个参数。要创建包含三行和三列的二维数组,您可以评估(make-array '(3 3))

引号字符表示文字。如果您说'(li co),则会有一个由符号lico组成的列表。要实际获取绑定到这些符号的,您需要使用函数list形成列表:

(defun make-ar (li co)
  (make-array (list li co))

另请注意,camelCase不是惯用的lisp;你应该用符号来区分符号名称中的单词。