Set和Setq
你好不知道有什么不同? 我一直认为这是议员的一个很好的解释。
其实我更困惑了
为什么这一个会起作用:
; 错误:错误的参数类型:symbolp nil
_$ (mapcar 'set '(x y z) '(1 2 3))
(1 2 3)
但这叫
_$ (set d 1)
; error: bad argument type: symbolp nil
_$
链接帖子中的解释说明:
第一个示例相当于:
然而,在第二个示例中,符号d由集合函数求值(因为它没有被引用)。
因此,第二个示例的计算结果为:
如果符号d没有值,则为:
如您所述返回错误。
我链接的帖子中给出了一个类似的例子来解释同样的事情:
我建议你重新阅读这篇文章。 所以set()函数无效
通过写作
(mapcar 'set '(x y z) '(1 2 3))
我用引号,所以它和setq一样
通过写作
6
我总是会出错,因为d可以为null或任何其他不可能赋值的值
你能告诉我set()函数可以在哪里使用吗?
有什么不同?
7
在这种情况下没有区别-因为AutoLISP不关心空格,所以发布的表达式是相同的。 在帮助中,他们在set()的页面中给出了setq()的示例代码?
你能举个例子说明集合(0)在哪里很方便吗?
一个简单的例子:排列变量
如果使用setq,相同的操作将需要松弛变量(c):
9
页:
[1]
2