将参数传递给 make-array

Els*_*ion -1 lisp common-lisp

(defun makeAr(li co)
    (make-array '(li co)))
Run Code Online (Sandbox Code Playgroud)

这不起作用,它说 li 和 co 是非法参数,尽管我这样称呼它例如:

(make-array 3 3)
Run Code Online (Sandbox Code Playgroud)

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

jla*_*ahd 5

make-array将列表中的数组维度作为其第一个参数。要创建一个三行三列的二维数组,您需要计算(make-array '(3 3)).

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

(defun make-ar (li co)
  (make-array (list li co))
Run Code Online (Sandbox Code Playgroud)

还要注意,camelCase 不是惯用的 lisp;你应该用破折号分隔符号名称中的单词。