The second trait that gives a language power is letting you *muck around*inside it as deeply as possible to make it do your bidding. That way, even if thedesigners of the language never conceived of what you’re trying to do, youcan make your own changes to the language until it does exactly what youneed to solve your problems elegantly.
The actions that a program performs are the semantics of the program.
记录cons函数的名称并非没有含意,它是单词'construct'的缩写car是短语'Contents of the Address part of the Register'cdr（'could-er'）是短语'Contents of the Decrement part of the Register'
(if *file-modified* (if (ask-user-about-saving) (save-file)))can be beautifully shortcut to :(and *file-modified* (ask-user-about-saving) (save-file))
(apply #'append '((mary had) (a) (little lamb)))apply looks like the varidic function in C(more powerful one)
The ability to pass around functions as if they were just plain old pieces of
data is incredibly valuable. Once you get used to doing this, you open up all
kinds of conceptual possibilities in the design of your programs. Eventually,
your programs will start looking very different from programs in more (dare
I say) pedestrian languages, such as Java or C. The name for the style of pro-
gramming that relies heavily on passing functions as values is called higher-order
functional programming. We will look at this style in more detail in Chapter 14.
An even more important reason why Lispers go gaga over lambda is that,
as it turns out, in a purely mathematical sense, lambda is actually the only Lisp
command there is!
Recall that Lisp is unusual among programming languages in that it was
derived directly from a mathematical concept called the lambda calculus. In
short, the lambda calculus is a theoretical programming language that contains
only one command: the lambda command. By having only this single command
and using special code transformations, it’s possible to create a fully function-
ing (though perhaps not practical) programming language.
The take-home point is that the lambda special form is the most funda-
mental command in a Lisp system, and the central concept from which other
functions in Lisp derive. In fact, it is the central concept from which the very
idea of Lisp itself originated.
Now that you have a basic understanding of lambda, you’re ready to tackle
some more complicated programming examples that would be hard to write
without the anonymous functions this command permits.
Because the *manipulation* and *visualization* of structures made of cons cells are central to the design of Lisp, these structures are extremely convenient to
use and *debug*.