在普通lisp中设置绑定(LET)和符号(=变量)有什么区别(简单地说)?
发布于 2010-04-19 11:49:29
符号和变量是两种截然不同的实体。Symbol是某物的名称;variable是值的容器。变量可以用符号命名。
绑定是符号和变量之间的关联;当绑定生效时,您可以通过变量的名称来引用变量。let form创建了这样一个绑定。
发布于 2010-04-19 19:57:01
(let ((a 1)将a的值设置为1,直到到达与字母前的左方括号匹配的左方括号的点,此时a恢复到它以前的值(或变为未定义)。您经常在函数体中看到let,其中您需要局部变量,这些变量需要在函数结束时超出范围,因此您可以在那里使用let。
(setf A 1)将a设置为1,并假定a先前已定义(无论是通过defparameter、defvariable还是let),或者a是需要值的新特殊变量。
这有点复杂,但我不确定我是否有lisp的印章来解释。
https://stackoverflow.com/questions/2664152
复制相似问题