【问题标题】:Pass arguments to make-array将参数传递给 make-array
【发布时间】:2014-11-08 13:03:32
【问题描述】:
(defun makeAr(li co)
    (make-array '(li co)))

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

(make-array 3 3)

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

【问题讨论】:

标签: lisp common-lisp


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-01-13
    • 2021-09-20
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 2017-01-14
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    相关资源
    最近更新 更多