当前位置: 首页 > 文档资料 > LISP 中文教程 >

程序结构

优质
小牛编辑
133浏览
2023-12-01

LISP表达式称为符号表达式或s表达式。 s表达式由三个有效对象,原子,列表和字符串组成。

任何s表达式都是有效的程序。

LISP程序可以在interpreter上运行,也可以作为compiled code.

解释器在重复循环中检查源代码,这也称为读取 - 评估 - 打印循环(REPL)。 它读取程序代码,对其进行评估,并打印程序返回的值。

一个简单的程序

让我们编写一个s表达式来找到三个数字7,9和11的总和。为此,我们可以在解释器提示符下键入。

(+ 7 9 11)

LISP返回结果 -

27

如果要运行与编译代码相同的程序,则创建名为myprog.lisp的LISP源代码文件,并在其中键入以下代码。

(write (+ 7 9 11))

单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -

27

LISP使用前缀表示法

您可能已经注意到LISP使用prefix notation.

在上面的程序中,+符号作为数字求和过程的函数名称。

在前缀表示法中,运算符在其操作数之前写入。 例如,表达式,

a * ( b + c )/d

将写成 -

(/ (* a (+ b c) ) d)

让我们再举一个例子,让我们编写将60华氏度的华氏温度转换为摄氏度的代码 -

此转换的数学表达式将是 -

(60 * 9/5) + 32

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

(write(+ (* (/ 9 5) 60) 32))

单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -

140

评估LISP计划

LISP计划的评估有两个部分 -

  • 通过读者程序将程序文本翻译成Lisp对象

  • 评估者程序根据这些对象实现语言的语义

评估过程采取以下步骤 -

  • 读者将字符串转换为LISP对象或s-expressions.

  • 评估器定义了从s表达式构建的Lisp forms语法。 第二级评估定义了一种语法,用于确定哪些s-expressions是LISP表单。

  • 求值程序作为一个函数,将有效的LISP表单作为参数并返回一个值。 这就是我们将LISP表达式放在括号中的原因,因为我们将整个表达式/表单作为参数发送给赋值器。

'Hello World'计划

学习一门新的编程语言并没有真正起飞,直到你学会了用这种语言来问候整个世界,对吧!

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

(write-line "Hello World")
(write-line "I am at 'IOWIKI'! Learning LISP")

单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -

Hello World
I am at 'IOWIKI'! Learning LISP