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