Lisp 通常会打印一个提示符告诉你,它正在等待你的输入。许多 Common Lisp 的实现用 作为顶层提示符。本书也沿用这个符号。

    一个最简单的 Lisp 表达式是整数。如果我们在提示符后面输入 1

    系统会打印出它的值,接着打印出另一个提示符,告诉你它在等待更多的输入。

    在这个情况里,打印的值与输入的值相同。数字 1 称之为对自身求值。当我们输入需要做某些计算来求值的表达式时,生活变得更加有趣了。举例来说,如果我们想把两个数相加,我们输入像是:

    1. > (+ 2 3)

    在日常生活中,我们会把表达式写作 2 + 3 ,但在 Lisp 里,我们把 + 操作符写在前面,接着写实参,再把整个表达式用一对括号包起来: (+ 2 3) 。这称为前序表达式。一开始可能觉得这样写表达式有点怪,但事实上这种表示法是 Lisp 最美妙的东西之一。

    举例来说,我们想把三个数加起来,用日常生活的表示法,要写两次 号,

    而在 Lisp 里,只需要增加一个实参:

    1. (+ 2 3 4)

    日常生活中用 + 时,它必须有两个实参,一个在左,一个在右。前序表示法的灵活性代表着,在 Lisp 里, + 可以接受任意数量的实参,包含了没有实参:

    表达式可以嵌套。即表达式里的实参,可以是另一个复杂的表达式:

    1. 3

    上面的表达式用中文来说是, (七减一) 除以 (四减二) 。

    Lisp 表示法另一个美丽的地方是:它就是如此简单。所有的 Lisp 表达式,要么是 这样的数原子,要么是包在括号里,由零个或多个表达式所构成的列表。以下是合法的 Lisp 表达式:

    稍后我们将理解到,所有的 Lisp 程序都采用这种形式。而像是 C 这种语言,有着更复杂的语法:算术表达式采用中序表示法;函数调用采用某种前序表示法,实参用逗号隔开;表达式用分号隔开;而一段程序用大括号隔开。