局部变量
局部变量在给定过程中定义。在函数定义中命名为 arguments 的参数也是局部变量。局部变量只能在各自的函数内访问。
与全局变量一样,局部变量也可以使用setq构造。
还有另外两个构造 -let和prog用于创建局部变量。
let 构造具有以下语法。
(let ((var1 val1) (var2 val2).. (varn valn))<s-expressions>)
其中 var1、var2、..varn 是变量名,val1、val2、..valn 是分配给各个变量的初始值。
什么时候let被执行,每个变量被赋予相应的值,最后s-expression被评估。返回最后计算的表达式的值。
如果你不包括一个变量的初始值,它被分配给nil.
例子
创建名为 main.lisp 的新源代码文件并在其中键入以下代码。
(let ((x 'a) (y 'b)(z 'c))
(format t "x = ~a y = ~a z = ~a" x y z))
当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行并返回结果。
这prog构造也有局部变量列表作为它的第一个参数,后面是prog,以及任意数量的 S 表达式。
这prog函数按顺序执行s表达式列表并返回nil,除非遇到名为return.然后的论点return函数被评估并返回。
例子
创建名为 main.lisp 的新源代码文件并在其中键入以下代码。
(prog ((x '(a b c))(y '(1 2 3))(z '(p q 10)))
(format t "x = ~a y = ~a z = ~a" x y z))
当您单击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行并返回结果。
x = (A B C) y = (1 2 3) z = (P Q 10)