LISP—程序结构

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

任意的s-表达式是一个有效的程序。

Lisp程序在解释器或编译的代码运行。

解释器会检查重复的循环,这也被称为读 – 计算 – 打印循环(REPL)源代码。它读取程序代码,计算,并打印由程序返回值。

一个简单的程序

让我们写一个s-表达式找到的三个数字7,9和11的总和。要做到这一点,我们就可以输入在提示符的解释器 ->:

(+7911)

LISP返回结果:

27

如果想运行同一程序的编译代码,那么创建一个名为myprog的一个LISP源代码文件。并在其中输入如下代码:

(write(+7911))

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

27

Lisp使用前缀表示法

可能已经注意到,使用LISP前缀符号。

在上面的程序中的+符号可以作为对数的求和过程中的函数名。

在前缀表示法,运算符在自己操作数前写。例如,表达式,

a * ( b + c ) / d

将被写为:

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

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

此转换的数学表达式为:

(60 * 9 / 5) + 32

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

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

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

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 Yiibai'! Learning LISP")

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

Hello World
I am at 'Tutorials Yiibai'! Learning LISP
如果引用本站的原创文章,请注明原文链接:,本站保留追究责任的权利!