1
52
有几种方法可以引入变量。
DEFVAR
和
DEFPARAMETER
介绍
全球的
注意,你可能永远都不想
坏的:
更好:总是用
局部变量用 DEFUN , LAMBDA LET MULTIPLE-VALUE-BIND 还有很多其他的。
现在,在默认情况下,上述两种形式的局部变量是词法的,除非它们是声明的 . 那么它们就是动态变量。
接下来,还有几个表单可以将变量设置为新值。
SET
,
SETQ公司
,
SETF
和其他人。
可移植代码需要设置已经声明的变量。设置一个未声明的变量的确切效果没有被标准定义。 因此,如果您知道常见的Lisp实现的功能,那么可以使用
在
在顶层。但是不要在代码中使用它,因为它的效果是不可移植的。典型的
彼此彼此:
首先,这些变量应该写成
典型的Lisp编译器会抱怨上面的变量没有声明。由于commonlisp中不存在全局词法变量,编译器必须为动态查找生成代码。一些编译器会说,好吧,我们假设这是一个动态查找,让我们声明为 特殊的 -因为这是我们的假设。 |
2
22
动态变量对于传递默认值很有用。例如,我们可以绑定动态变量
词法变量的一个常见用法是定义闭包,用状态模拟对象。在第一个示例中,变量
我们可以给
|
4
8
此外,
http://www.gigamonkeys.com/book/variables.html
例如,如果您有一个全局
|
RezAm · 逐个矩阵赋值MATLAB 6 年前 |
Ashok · 为每个子列表的第一个元素指定值的更简单方法? 7 年前 |
msalmon · 对于带有分配功能的循环,功能工作不正常 7 年前 |
AP30 · 使用函数参数作为R中新数据帧的名称 7 年前 |
Davor Josipovic · 通过引用从函数内指定环境对象的属性 7 年前 |
Augusto · 在函数中使用循环从CSV文件加载数据帧[重复] 7 年前 |
Ben · 将var分配给C中的var[闭合] 7 年前 |
alexb523 · R-在For循环中添加带文件名的列 7 年前 |
amonk · 通过“assign”将新列分配给数据帧` 7 年前 |