函数是Lisp程序的构建块。它们也是Lisp的构建块。在多数的语言中+操作符和用户自定义函数是非常不同的。但是在Lisp中有一个单一模型,函数应用,来描述一个程序所要做的全部计算。Lisp的+操作符是一个函数,和你自己定义的函数一样。
事实上,除了一小部分叫做特殊形式的操作符之外,Lisp的核心就是Lisp函数的集合。有什么东西能阻止你向这个集合中添加东西呢?没有:如果你认为某些东西是Lisp应该做的,你可以自己写出它,你新的函数将被和内置的函数一样对待。
这个事实对于程序员来说影响重大。它意味着任何新的函数可以被认为是对Lisp的补充,或者是某个应用的一部分。典型的,一个有经验的Lisp程序员每一个都会写一些,来调整语言和程序之间的边界,直到它们完美地适合对方。这本书是关于如何达到语言和应用最佳适应的。既然我们做的每件事都是向着这个方向,最后都以来于函数,函数自然地成为我们开始的地方。