基本表达

让我们在 REPL 中尝试一些基本表达式:

CL-USER> (+ 1 2 3)
6
CL-USER> (- 3 1 1)
1
CL-USER> (- 3)
-3
CL-USER> (+ 5.3 (- 3 2) (* 2 2))
10.3
CL-USER> (concatenate 'string "Hello, " "World!")
"Hello, World!"
CL-USER> 

Common Lisp 程序的基本构建块是表单。在这些示例中,我们有函数形式,即表达式,写为列表,其中第一个元素是运算符(或函数),其余元素是操作数(这称为前缀表示法波兰表示法) “)。在 REPL 中编写表单会导致他们的评估。在示例中,你可以看到简单的表达式,其参数是常量,字符串和符号(在'string 的情况下,这是类型的名称)。你还可以看到算术运算符可以使用任意数量的参数。

值得注意的是,括号是语法的组成部分,不能像其他编程语言一样自由使用。例如,以下是一个错误:

(+ 5 ((+ 2 4)))
> Error: Car of ((+ 2 4)) is not a function name or lambda-expression. ...

在 Common Lisp 中,形式也可以是数据,符号,宏形式,特殊形式和 lambda 形式。它们可以被编写为被评估,返回零,一个或多个值,或者可以在宏的输入中给出,以其他形式转换它们。