目录

LISP - 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
↑回到顶部↑
WIKI教程 @2018