请问,有人可以解释为什么"make-array"对plant1没有影响吗?
(LET(plant1)((setq plant1(make-array'(4 4)))(print plant1)(setf(AREF PLANT1 0 0)1)))
NIL错误:尝试在非数组的NIL上执行数组操作.[条件类型:TYPE-ERROR]
(LET (plant1) ((setq plant1 (make-array '(4 4))) (print plant1) (setf (AREF PLANT1 0 0) 1)))
Run Code Online (Sandbox Code Playgroud)
第一条规则:格式化代码.
(LET (plant1)
((setq plant1 (make-array '(4 4)))
(print plant1)
(setf (AREF PLANT1 0 0) 1)))
Run Code Online (Sandbox Code Playgroud)
括号太多了.let的语法有一个代码体,它是一系列形式.序列周围有括号,这是错误的.阅读LET的Common Lisp HyperSpec条目.它提到了语法.
使用:
(LET (plant1)
(setq plant1 (make-array '(4 4)))
(print plant1)
(setf (AREF PLANT1 0 0) 1))
Run Code Online (Sandbox Code Playgroud)
这与以下相同:
(LET ((plant1 (make-array '(4 4))))
(print plant1)
(setf (AREF PLANT1 0 0) 1))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
100 次 |
最近记录: |