一直受某些人蛊惑,说这本书如何如何的经典。于是千山万水的觅来。从经常买书的china-pub上已经没有了,失望了许久,某日居然发现dangdang上还有。于是马上网购来。读书系列之-《计算机程序的构造和解释》_经典
序言之前有这样一段引言:

带着崇敬和赞美,将本书献给活在计算机里的神灵。

"我认为,在计算机科学中保持计算中的趣味性是特别重要的事情。这一学科在起步时饱含着趣味性。当然,那些付钱的客户们时常觉得受了骗。一段时间之后,我们开始严肃地看待他们的抱怨。我们开始感觉到,自己真的像是负起成功地、无差错地,完美地使用这些机器的责任。我不认为我们可以做到这些。我认为我们的责任是去拓展这一领域,将其发展到新的方向,并在自己的家里保持趣味性。我希望计算机科学的领域绝不要丧失其趣味意识,最重要的是,我希望我们不要变成传道士,不要认为你是兜售圣经的人,世界上这种人已经足够多了。你所知道有关计算的东西,其他人也都能学到。绝不要以为似乎成功计算的钥匙就掌握在你的手里。你所掌握的,也是我认为并希望的,也就是智慧:那种看到这一机器比你第一次站在它面前时能做得更多的能力,这样你才能将它向前推进。" 

             Alan Jay Perlis (April 1, 1922 – February 7, 1990)

  在以上的引言之后,大师又为本书写了序。在上面的引言中,“我希望我们不要变成传道士,不要认为你是兜售圣经的人”。让我思考了许久。面对学生时,我有没有当自己是传教士?我让为自己在兜售圣经吗?呵呵。

   因为本书主要是介绍Lisp,用的主要方言是Scheme.所以我下载了Racket v5.0.2作为编译器来测试例子。加深对Lisp的理解。

  还是来写第一个例子吧.

Welcome to DrRacket, version 5.0.2 [3m].
Language: scheme; memory limit: 128 MB.
> (define (square x)(* x x))
> (square 3)
9
>

所有>表示用户的输入。这里我定义了一个函数square。它用来求一个数的平方。

嗯,如果你觉得这个太简单,那么我们求x的平方加y的平方试试。

>(define (sumofSquare x y)(+(square x)(square y)))
> (sumofSquare 2 3)

13

嗯你从这个例子中发现点什么了吗?scheme使用前缀运算符。

呵呵。下次再玩吧。