嗯,有缺陷的功能如下:
(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
函数?
答案 0 :(得分:7)
您尝试使用(n n)
,但这是用于调用名为n
且带有参数n
的函数的Lisp语法。您应该像这样调用make-array
:
(make-array (list n n) :initial-element 0)