Lisp 为什么plant1一直是零?
请问,有人能解释一下为什么make array对plant1没有影响吗 让plant1 setq plant1生成数组'4 4打印plant1 setf AREF plant1 0 1 零 错误:尝试对非数组的NIL执行数组操作。 [条件类型:类型错误]Lisp 为什么plant1一直是零?,lisp,Lisp,请问,有人能解释一下为什么make array对plant1没有影响吗 让plant1 setq plant1生成数组'4 4打印plant1 setf AREF plant1 0 1 零 错误:尝试对非数组的NIL执行数组操作。 [条件类型:类型错误] 对此持保留态度,因为我主要处理Scheme,而不是CommonLisp 让我们使用以下语法: (let ((var1 2) (var2 7)) (+ var1 var2)) 如果只想定义一个变量 (let ((var1 2)) ...);;R
对此持保留态度,因为我主要处理Scheme,而不是CommonLisp 让我们使用以下语法:
(let ((var1 2) (var2 7)) (+ var1 var2))
如果只想定义一个变量
(let ((var1 2)) ...);;Replace ... with whatever operations you do in that scope.
据我所知,您从未在let中定义plant1,加上语法错误,因此,一旦您尝试执行set,它就不起作用。当然,我可能完全错了,所以只能将此作为一种尝试,直到知道他们在说什么的人加入进来。对此持保留态度,因为我主要处理的是Scheme,而不是Common Lisp
(LET (plant1) ((setq plant1 (make-array '(4 4))) (print plant1) (setf (AREF PLANT1 0 0) 1)))
让我们使用以下语法:
(let ((var1 2) (var2 7)) (+ var1 var2))
如果只想定义一个变量
(let ((var1 2)) ...);;Replace ... with whatever operations you do in that scope.
据我所知,您从未在let中定义plant1,加上语法错误,因此,一旦您尝试执行set,它就不起作用。当然,我可能完全错了,所以只能把这当作一种尝试,直到有人知道他们在说什么
(LET (plant1) ((setq plant1 (make-array '(4 4))) (print plant1) (setf (AREF PLANT1 0 0) 1)))
第一条规则:格式化代码
(LET (plant1)
((setq plant1 (make-array '(4 4)))
(print plant1)
(setf (AREF PLANT1 0 0) 1)))
括号太多了。let的语法有一个代码体,它是一系列形式。序列周围有括号,这是错误的。阅读LET的公共Lisp HyperSpec条目。它提到了语法
使用:
这与:
(LET ((plant1 (make-array '(4 4))))
(print plant1)
(setf (AREF PLANT1 0 0) 1))
第一条规则:格式化代码
(LET (plant1)
((setq plant1 (make-array '(4 4)))
(print plant1)
(setf (AREF PLANT1 0 0) 1)))
括号太多了。let的语法有一个代码体,它是一系列形式。序列周围有括号,这是错误的。阅读LET的公共Lisp HyperSpec条目。它提到了语法
使用:
这与:
(LET ((plant1 (make-array '(4 4))))
(print plant1)
(setf (AREF PLANT1 0 0) 1))