Basic 语法
LISP中的基本构建块
LISP计划由三个基本构建模块组成 -
atom
list
string
atom是连续字符的数字或字符串。 它包括数字和特殊字符。
以下是一些有效原子的例子 -
hello-from-tutorials-point
name
123008907
*hello*
Block#221
abc123
list是括在括号中的原子序列和/或其他列表。
以下是一些有效列表的示例 -
( i am a list)
(a ( a b c) d e fgh)
(father tom ( susan bill joe))
(sun mon tue wed thur fri sat)
( )
string是用双引号括起来的一组字符。
以下是一些有效字符串的示例 -
" I am a string"
"a ba c d efg #$%^&!"
"Please enter the following details :"
"Hello from 'IOWIKI'! "
添加评论
分号符号(;)用于表示注释行。
例如,
(write-line "Hello World") ; greet the world
; tell them your whereabouts
(write-line "I am at 'IOWIKI'! Learning LISP")
单击“执行”按钮或键入Ctrl + E时,LISP立即执行它,返回的结果为 -
Hello World
I am at 'IOWIKI'! Learning LISP
移动到下一个之前的一些值得注意的点
以下是一些需要注意的重点 -
LISP中的基本数字运算是+, - ,*和/
LISP表示函数调用f(x)为(fx),例如cos(45)写为cos 45
LISP表达式不区分大小写,cos 45或COS 45相同。
LISP尝试评估所有内容,包括函数的参数。 只有三种类型的元素是常量,并始终返回自己的值
Numbers
字母t,代表逻辑真实。
值nil,表示逻辑false,以及空列表。
关于LISP表格的更多信息
在前一章中,我们提到LISP代码的评估过程采取以下步骤。
读者将字符串转换为LISP对象或s-expressions.
评估器定义了从s表达式构建的Lisp forms语法。 第二级评估定义了一种语法,用于确定哪些s表达式是LISP表单。
现在,LISP形式可能是。
原子
空列表或非列表
任何以符号作为第一个元素的列表
求值程序作为一个函数,将有效的LISP表单作为参数并返回一个值。 这就是我们将LISP expression in parenthesis,原因LISP expression in parenthesis,因为我们将整个表达式/表单作为参数发送给赋值器。
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