LISP - 变量

在LISP中,每个变量由一个'符号'表示。变量的名称是符号的名字,并将其存储在码元的存储单元。

全局变量

全局变量有永久值在整个LISP系统,并保持有效,直到指定的新值。

全局变量是使用defvar结构一般声明。

例如:

(defvar x 234)
(write x)

当您单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

234

由于没有类型声明在LISP变量,可直接用setq一样构建一个符号指定一个值

例如,

->(setq x 10)

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

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

示例

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

当单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

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是分配给相应的变量的初始值。

当执行let,每个变量被分配了各自的值,最后的s-expression。则返回最后一个表达式的值。

如果不包括的变量的初始值,它被分配到nil。

例子

创建一个名为main.lisp新的源代码文件,并在其中输入如下代码:

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

当单击Execute按钮,或按下Ctrl+ E,LISP立即执行它,返回的结果是:

x = A y = B z = C

该编结构也有局部变量作为第一个参数,它后面是prog的主体,以及任意数量s-expressions的列表。

该编函数执行s-expressions序列的列表,并返回零,除非遇到函数调用名返回。然后函数参数计算并返回。

例子

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

猿狮妹
2022-11-26
变量 全局变量 编程课程
热门教程
1 Lisp教程 Lisp是Fortran语言之后第二古老的高级编程语言,自成立之初已发生了很大变化,和一些方言一直存在在它的历史。今天,最广为人知的通用的是Lisp方言:Common Lisp和Scheme。
2 LISP - 函数 函数是一组一起执行任务的语句。 可以把代码放到单独的函数。如何划分代码之前不同的功能,但在逻辑上划分通常是这样每个函数执行特定的任务。 LISP函数定义 命名函数defun宏用于
3 LISP - 运算符 运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。 LISP允许在众多的数据业务,通过各种函数,宏和其他结构的支持。 允许对数据的操作都可以归类为: 算术运算 比较操
4 LISP - 输入和输出 Common Lisp提供了大量的输入输出功能。我们已经使用的格式功能,打印输出功能。在本节中,我们将探讨一些在LISP提供了最常用的输入输出功能。 输入函数 下表提供了LISP的最常用的输
5 LISP - 基本语法 LISP基本构建块 Lisp程序是由三个基本构建块: atom list string 一个原子是一个数字连续字符或字符串。它包括数字和特殊字符。 以下是一些有效的原子的例子: hello - from - tutorials - poin
6 LISP - 数据类型 在LISP中,变量没有类型的,但有数据对象。 LISP数据类型可分类为: 标量类型 - 例如,数字类型,字符,符号等。 数据结构 - 例如,列表,向量,比特向量和字符串。 任何变量都可以
7 LISP - 宏 宏可以扩展标准LISP的语法。 从技术上讲,宏是一个函数,它接受一个s-expression作为参数,并返回一个LISP的形式,然后进行评估计算。 定义一个宏 在LISP中,一个名为宏使用另一个名为
8 LISP - 文件I/O 我们已经了解如何使用标准的输入和输出是由Common Lisp处理的参数。所有这些函数读取和写入文本文件和二进制文件。唯一不同的是在这种情况下,我们使用流不是标准输入或输出,但
9 LISP - 循环 可能有一种情况,当需要执行代码块多次。循环语句可以让我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式为: LISP提供的结构来处理循环要求以下
10 LISP - 程序结构 LISP表达式称为符号表达式或S-表达式。s表达式是由三个有效对象,原子,列表和字符串。 任意的s-表达式是一个有效的程序。 Lisp程序在解释器或编译的代码运行。 解释器会检查重复的
  • Copyright © 2021 猿狮院, All rights reserved.