Skip to content
thzt edited this page Jan 31, 2015 · 7 revisions

Book Information

Review by [akitsukikiritsugu]

  • Rank: ★★★★

  • Hard: ★

  • Tag: Scheme, Lisp, Interpreter, Programming, Newbie.

  • Reviews:

    一. 为嘛读它? (配合鸟叔的Gentleman阅读效果更佳)

    你还在头悬梁锥刺股看魔书吗? (看SICP的良好辅助书籍)

    你还因为本科学JAVA,C井托控件而烦恼FP吗? (FP和Scheme入门良方)

    你还在把递归当成妖魔鬼怪性能巨坑而滥用循环吗? (学会递归地思考,编程)

    你还在格子间没日没夜地谷歌必应粘代码吗? (不止凑数。。。。)

    NO!NO!NO!NO!NO!NO!NO!NO! NO!NO!NO!NO!NO!NO!NO!NO!

    学会Scheme开始当技术大神的梦想,你也可以复制!

    二. 我能学啥?

    你可以 你可以 学到江湖失传多年的Scheme公理 递归编程的10条规矩

    你可以 你可以 掌握 掌握 轻松愉悦的邱奇编码 图灵停机 函数不动点问题

    你可以 你可以 hold住 hold住 简单明确的解释器style 心动不如行动动!

    三. 这书咋地?

    Scheme技术哪家,印地安那找……

    (好好说话啊喂!)

    (其实是这段编不下去了啊!)

    这本书看起来是个逗X范的书,实际上包含两个难能可贵的成书特点:

    循序渐进的教学思维以及滴水不漏的逻辑过程。

    书中的问答方式,并非是提出问题并解决问题的过程,而是诱导读者思考的过程。

    让读者自己提出解决方案,验证逻辑严密性,推演过程的正确性。

    这本书不是Friedman在讲授Scheme,而是让读者在引导下,自己发明Scheme。

    不但如此,Friedman还帮助读者用简练的话总结自己的“发明”,以slogan的形式深化印象。

    四. 我打字都是随机的。

    本来想按自己的文档风格写一个书评,不过要是一眼望去 一.读书目的 1.1 1.2.1.3 二.本书内容 2.1 2.2 2.3……

    那画面太美估计看官直接右上角了。

    这个书真的很适合初学者啊!

    (最后一部分了说点有用的啊!)

    思考——思考问题的答案,真正地去试着“发明”Scheme。

    猜测——猜测Friedman的思路,他接下来的问题。如果被你猜中,你会印象更深刻,并且少读几页,效率GET√。眼睛是磁盘I/O,思考是极速内存。

    比较——读完去搜搜书评,上边有许多其他读者的精彩总结。你是否也能得出相应的结论呢?

Review by [thzt]

想想这本书已经是很久以前读的了。

它的内容已经想不起来了,但是行文特点还是记忆犹新。


还好这本书还没有中译版的,不然又成了中西文化杂交的产物了,不伦不类。

其实,读了不少原版书以后,就慢慢感觉到了一种套路。


中文书,偏重实用,讲述某个先进的工具如何使用。

原版书(American),偏重思考和总结。

这可能是对世界的态度不同所致,各有利弊。

择其善者而从之,其不善者而改之。


科学方法,是从国外传进来了,理解他们的思维习惯很有必要。

观察,假设,预测,检验,重复,科学和工作无不沿着这一套路进行。


本书简化了这个流程,全书采用问答=>定理的方式进行。

就像一本薄薄的Q&A手册似的。


本书在难度上属于入门级,并没有介绍scheme一些难以理解的特性。

比如continuation和macro。

所以,任何喜欢学习的人,无论基础怎样只要足够耐心都可以读完。

但这并不是说它是简单的,你一定知道易学和简单完全是两码事。


学会用递归解决问题,是学习scheme的第一步,也是学习函数式编程的第一步。

个人以为,这是一个把某个问题转换为更小规模问题的过程。

而其他语言中,人们倾向于直接思考问题的迭代解决思路。


其实,从更高的角度来说,递归像是在归约问题,迭代像是在从头开始。

所以,用递归提供解决思路,然后再转换为迭代实现,是很好的一种思考方法。


另外,介绍scheme语言特性的书真的很少,因为人们只是把scheme当做工具来使用。

更有一些人认为scheme没有语法。

怎么说呢,scheme相当于曲别针,虽然简单,但是内涵丰富,是智慧的结晶。


你不觉得曲别针是天才之作吗?

好吧,你还是学习“大型”语言吧。