📜  LISP-程序结构

📅  最后修改于: 2020-11-03 07:06:08             🧑  作者: Mango


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

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

LISP程序可以在解释器上运行,也可以作为已编译的代码运行。

解释器以重复循环的形式检查源代码,该循环也称为“读取-评估-打印”循环(REPL)。它读取程序代码,对其进行评估,然后打印该程序返回的值。

一个简单的程序

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

(+ 7 9 11)

LISP返回结果-

27

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

(write (+ 7 9 11))

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

27

LISP使用前缀表示法

您可能已经注意到LISP使用前缀表示法。

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

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

a * ( b + c ) / d

将被写为-

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

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

该转换的数学表达式为-

(60 * 9 / 5) + 32

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

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

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

140

LISP计划评估

对LISP程序的评估包括两个部分-

  • 阅读器程序将程序文本转换为Lisp对象

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

评估过程采取以下步骤-

  • 读者转换字符的字符串对象LISP或s表达式。

  • 评估程序定义从s表达式构建的Lisp表单的语法。第二层评估定义了一种语法,该语法确定哪些s表达式是LISP形式。

  • 该评估工作为采取有效的LISP形式作为参数和返回值的函数。这就是为什么将LISP表达式放在括号中的原因,因为我们将整个表达式/表单作为参数发送给评估者。

“ Hello World”计划

学习一种新的编程语言并不是真正的腾飞,除非您学习如何用这种语言向全世界问好,对!

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

(write-line "Hello World")

(write-line "I am at 'Tutorials Point'! Learning LISP")

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

Hello World

I am at 'Tutorials Point'! Learning LISP