在简单的术语lisp中设置绑定(LET)和符号(=变量)之间的区别是什么?
答案 0 :(得分:7)
符号和变量是两种截然不同的实体。符号是某物的名称; variable是值的容器。变量可以用符号命名。
绑定是符号和变量之间的关联;当绑定生效时,您可以通过名称引用变量。 let
表单创建了这样的绑定。
答案 1 :(得分:1)
(let((a 1)))将a的值设置为1,直到达到与let之前的开括号匹配的右括号的点为止,此时a将恢复到之前的值(或者变得不明确)。你经常在函数体中看到let,你需要在函数末尾超出范围的局部变量,所以你可以使用let。
(setf a 1)将a设置为1并假设先前已定义a(无论是通过defparameter,defvariable还是let),或者a是需要值的新特殊变量。
它比这复杂一点,但我不确定我是否有lisp印章来解释它。