lisp - 如何修改这个 "make-matrix"函数?

标签 lisp common-lisp clisp

嗯,有缺陷的函数如下:

(defun make-matrix (n)
  (make-array (n n) :initial-element 0))

我想使用像(make-matrix 8)这样的函数来替换较长的(make-array '(8 8) :initial-element 0),但是CLISP 表示 (n n) 中存在错误,因为 n 不是已定义的函数。如何编写此 make-matrix 函数?

最佳答案

您尝试使用 (n n),但这是 Lisp 语法,用于调用名为 n 的函数并带有参数 n。您应该像这样调用 make-array:

(make-array (list n n) :initial-element 0)

关于lisp - 如何修改这个 "make-matrix"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19678906/

相关文章:

lisp - JSCL - 为什么会出现这个神秘的错误?

vim - Slimv - 更改 REPL 垂直拆分

command-line - 在 Common Lisp 中获取命令行参数

lisp - 为什么 Setq 工作但不让?

unit-testing - Lisp 中破坏性函数的单元测试

recursion - 无法将递归构建的列表返回到 Lisp 中的调用函数

lisp - 从另一个文件 clisp 导出函数

programming-languages - 静态类型的完整 Lisp 变体是否可能?

lisp - 使用以下规范在 LISP 中编写 Foo 函数

common-lisp - 在 Common Lisp 中使用 shell 脚本中的 stdout