Probably a lot of programmer have seen "hackers and painters," and the author used a whole chapter to discuss the power of Lisp. I would naturally tickle my hands. A few months ago, gongchenglvede the python in a few days, using PY to rewrite the previously developed class library, so that you can quickly familiarize yourself with the grammar and develop a sense of language. Beaming me, also trying to use the same strategy for Lisp, I began to look at its syntax and functions, such as how to define classes and functions, how to assign values, and so on. But I slowly find that Lisp almost doesn't need to learn grammar, that is, parentheses and a few basic processes, nothing but lambda, define, let,cons,car,cdr and so on. Although the syntax is quickly completed, it is difficult to use it to write the previous Python or C # style of imperative code. Even the assignment has become so strange, and there are countless dialects, when defining classes, each dialect is different! The function name is very long, the variable will even use the question mark exclamation number and so on usually dare not think of symbol. After trying to write Lisp for a day, I gave up, and its thinking is very different from all of my previous ideas! Later I read the construction and interpretation of computer programs (SICP) . This book is obviously not famous for "programming Zhu Ji Nanxiong" or even "the beauty of programming". But its directory is very good for my appetite, flow mode, lazy evaluation, meta-language abstraction, listen to is not very forced lattice it? So I can not wait to set foot on this land, while looking at one side to do exercises. After what happened beyond my imagination, this is just an introductory course for a freshman at MIT, with a depth of mind, difficulty and breadth beyond my imagination. No wonder there are so many gods abroad, because they have seen such a great teaching material! Its function derivation and integration method, high-order function, closure is breathtaking, functional style operation makes the previously unthinkable operation possible. Lisp recursive play is too slip, it is the King of functional programming language, the cycle of iteration as soon as the second-class citizens. SICP a little bit to explain the true nature of the program run, analyzing the structure, environment and abstraction. I just saw the second chapter, has been stunned, overturned a lot of concepts, let me extremely regret, why did not read this book in the freshman sophomore (that I would not even see the reading). A lot of books are very informative, and a few pages are left when a book is compressed. But SICP is not the same, the book not only can not be compressed, but also need to expand. So if you really want to know its subtlety, please read it directly. AnyPraise is weak. I was then quickly put into Lisp's arms, whether to use Lisp as the working language, this is not important, in depth, you will feel the refinement of mathematics, the glory of reason. I discovered that Lisp was not a grammar at all, but a design. Using previous programming ideas to write Lisp is simply throwaway. At this point, you will no longer complain that the language limits the mind, only the ability to regret that your mind is not worthy of it. In addition, I found that reading must do exercises, do exercises, do exercises. The best way for the brain to learn and to test and consolidate knowledge is to do exercises. Think the textbook is very redundant, think you understand? Do an exercise for minutes to be abused by dogs. See the great God of the solution to the problem, only to find this goods originally this! This is probably the fun of thinking!
Lisp and SICP