The Little Schemer - 图1

    关键字:Scheme,递归,编程

    推荐:★★★
    难度:★

    豆瓣链接:https://book.douban.com/subject/1632977/


    想想这本书已经是很久以前读的了。
    它的内容已经想不起来了,但是行文特点还是记忆犹新。

    还好这本书还没有中译版的,不然又成了中西文化杂交的产物了,不伦不类。
    其实,读了不少原版书以后,就慢慢感觉到了一种套路。

    中文书,偏重实用,讲述某个先进的工具如何使用。
    原版书(American),偏重思考和总结。
    这可能是对世界的态度不同所致,各有利弊。
    择其善者而从之,其不善者而改之。

    科学方法,是从国外传进来了,理解他们的思维习惯很有必要。
    观察,假设,预测,检验,重复,科学和工作无不沿着这一套路进行。

    本书简化了这个流程,全书采用问答=>定理的方式进行。
    就像一本薄薄的Q&A手册似的。

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

    所以,任何喜欢学习的人,无论基础怎样只要足够耐心都可以读完。
    但这并不是说它是简单的,你一定知道易学和简单完全是两码事。

    学会用递归解决问题,是学习scheme的第一步,也是学习函数式编程的第一步。
    个人以为,这是一个把某个问题转换为更小规模问题的过程。
    而其他语言中,人们倾向于直接思考问题的迭代解决思路。

    其实,从更高的角度来说,递归像是在归约问题,迭代像是在从头开始。
    所以,用递归提供解决思路,然后再转换为迭代实现,是很好的一种思考方法。

    另外,介绍scheme语言特性的书真的很少,因为人们只是把scheme当做工具来使用。
    更有一些人认为scheme没有语法。
    怎么说呢,scheme相当于曲别针,虽然简单,但是内涵丰富,是智慧的结晶。

    你不觉得曲别针是天才之作吗?
    好吧,你还是学习“大型”语言吧。