LISP - 变量声明

LISP - 变量声明 首页 / LISP入门教程 / LISP - 变量声明

在LISP中,每个变量都由符号表示,变量的名称是符号的名称,它存储在符号的存储单元中。

全局变量

全局变量在整个LISP系统中具有永久值,并且在指定新值之前保持有效。

全局变量通常使用defvar构造声明。

(defvar x 234)
(write x)

当您单击Execute按钮或键入Ctrl+E时,LISP会立即执行它,并且返回的结果是

234

由于LISP中没有变量的类型声明,因此可以使用setq构造直接为符号指定值。

全局变量 - 示例1

->(setq x 10)

上面的表达式将值10赋给变量x,您可以使用符号本身作为表达式来引用变量。

symbol-value函数允许您提取存储在符号存储位置的值。

全局变量 - 示例2

创建名为main.lisp的新源代码文件,并在其中键入以下代码。

无涯教程网

(setq x 10)
(setq y 20)
(format t "x=~2d y=~2d ~%" x y)

(setq x 100)
(setq y 200)
(format t "x=~2d y=~2d" x y)

当您单击执行按钮或键入Ctrl+E时,LISP会立即执行它,并且返回的结果是.

链接:https://www.learnfk.comhttps://www.learnfk.com/lisp/lisp-variables.html

来源:LearnFk无涯教程网

x=10 y=20 
x=100 y=200

局部变量

局部变量是在给定过程中定义的。在函数定义中被命名为参数的参数也是局部变量,局部变量只能在相应的函数中访问。

与全局变量一样,也可以使用setq构造创建局部变量。

还有两个其他的构造-let和prog用于创建局部变量。

let构造具有以下语法。

(let ((var1  val1) (var2  val2).. (varn  valn))<s-expressions>)

其中var1,var2,.varn是变量名,val1,val2,.valn是分配给各个变量的初始值。

局部变量 - 示例1

创建名为main.lisp的新源代码文件,并在其中键入以下代码。

无涯教程网

(let ((x 'a) (y 'b)(z 'c))
(format t "x=~a y=~a z=~a" x y z))

当您单击执行按钮或键入Ctrl+E时,LISP会立即执行它,并且返回的结果是.

链接:https://www.learnfk.comhttps://www.learnfk.com/lisp/lisp-variables.html

来源:LearnFk无涯教程网

x=A y=B z=C

prog构造还将局部变量列表作为其第一个参数,后面是prog、主体和任意数量的s表达式。

prog函数按顺序执行s表达式列表,并返回nil,除非它遇到名为return的函数调用。return函数的参数将被计算并返回。

局部变量 - 示例2

创建名为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))

当您单击Execute执行按钮或键入Ctrl+E时,LISP会立即执行它,并且返回的结果是.

x=(A B C) y=(1 2 3) z=(P Q 10)

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构实战160讲 -〔杨波〕

算法面试通关40讲 -〔覃超〕

玩转Spring全家桶 -〔丁雪丰〕

从0打造音视频直播系统 -〔李超〕

软件设计之美 -〔郑晔〕

大厂晋升指南 -〔李运华〕

体验设计案例课 -〔炒炒〕

流程型组织15讲 -〔蒋伟良〕

互联网人的数字化企业生存指南 -〔沈欣〕

好记忆不如烂笔头。留下您的足迹吧 :)