📅  最后修改于: 2020-11-03 07:06:41             🧑  作者: Mango
LISP程序由三个基本构建块组成-
原子
清单
字符串
的原子是一个数字的或连续的字符字符串。它包括数字和特殊字符。
以下是一些有效原子的示例-
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
列表是括号内的原子和/或其他列表的序列。
以下是一些有效列表的示例-
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
字符串是用双引号引起来的一组字符。
以下是一些有效字符串的示例-
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'Tutorials Point'! "
分号(;)用于指示注释行。
例如,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'Tutorials Point'! Learning LISP")
当您单击执行按钮或键入Ctrl + E时,LISP立即执行它,返回的结果是-
Hello World
I am at 'Tutorials Point'! Learning LISP
以下是一些要注意的重要点-
LISP中的基本数字运算是+,-,*和/
LISP将函数调用f(x)表示为(fx),例如cos(45)写为cos 45
LISP表达式不区分大小写,cos 45或COS 45相同。
LISP尝试评估所有内容,包括函数的参数。只有三种类型的元素是常量,并且总是返回自己的值
号码
字母t代表逻辑上的真。
值nil(代表逻辑假)以及一个空列表。
在上一章中,我们提到了LISP代码的评估过程采取以下步骤。
读者转换字符的字符串对象LISP或s表达式。
评估程序定义从s表达式构建的Lisp表单的语法。第二层评估定义了一种语法,该语法确定哪些s表达式是LISP形式。
现在,可以使用LISP表格。
原子
空的或非列表
任何以符号为第一个元素的列表
该评估工作为采取有效的LISP形式作为参数和返回值的函数。这就是为什么将LISP表达式放在括号中的原因,因为我们将整个表达式/表单作为参数发送给评估程序。
名称或符号可以由任意数量的字母数字字符组成,空格,开括号和右括号,双引号和单引号,反斜杠,逗号,冒号,分号和竖线除外。要在名称中使用这些字符,您需要使用转义字符(\)。
名称可以有数字,但不能完全由数字组成,因为这样它将被读为数字。同样,名称可以有句点,但不能完全由句点组成。
LISP评估所有内容,包括函数参数和列表成员。
有时,我们需要按字面意义获取原子或列表,并且不希望它们被评估或视为函数调用。
为此,我们需要在原子或列表之前加上单引号。
下面的示例演示了这一点。
创建一个名为main.lisp的文件,然后在其中键入以下代码。
(write-line "single quote used, it inhibits evaluation")
(write '(* 2 3))
(write-line " ")
(write-line "single quote not used, so expression evaluated")
(write (* 2 3))
当您单击执行按钮或键入Ctrl + E时,LISP立即执行它,返回的结果是-
single quote used, it inhibits evaluation
(* 2 3)
single quote not used, so expression evaluated
6