Learn You a Haskell for Great Good - 图1

    关键字:haskell,type,type class,functor,applicative,monad

    推荐:★★★★
    难度:★★

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


    haskell的书不太多,像本书这样轻口味的更少。

    正如本书开篇提到的。
    Work on Haskell began in 1987 when a committee of researchers got together to design a kick-ass language.
    [最初的工作始于 1987 年,一群学者聚在一起想设计一个吊到爆的编程语言]。
    haskell设计的目的就是把你搞晕,总有重口味爱好者的。

    这不是嘛,爱好数学的人们,看到这个语言,喜欢的不得了。
    随着一阵阵眩晕和颤抖,得到了他们需要的快感。

    本书则不同,以平淡的文字,描述着一件件惊天动地的事情。
    这就是本书的魅力所在了吧,换一换风格,会有新的认识。

    首先,目录是用缩进形式写的,haskell style啊。
    后来发现,haskell erlang python,不知道怎么的互相影响。
    列表解析呀,模式匹配啊,后来连go也同流合污了。

    理解以后才明白,原来这就是函数式风格呀。

    身为血统最纯正的函数式语言,haskell是一个贵族。
    硬生生的用monad把世界分成两半了。
    有副作用的,没有副作用的。

    如果你从其他书中觉得monad难以理解,本书可以为你解惑。
    正如其他概念functor, applicative一样,monad也是提炼出来的。
    你发现很多函数互相调用,有套路可循。

    可以将套路抽象出来,做一个运算控制器。
    那么它很可能就是functor, applicative或者monad了。
    只不过加上类型以后,把你搞晕了而已。

    但是,也不能高兴的太早,对运算模式的抽象和对数据的抽象。
    haskell走的很远。
    其他语言因为缺乏原生机制来支持,所以往往不够精炼。

    所以,学习haskell能让你拥有先进的思维方式。
    在任何其他语言中,都可以写出不一般的代码。
    很简单,你先实现一个运算控制器,然后当做类库使用就行了。

    另外,本书monad和monoid看起来很像,其实是不同的概念。
    我看了好几遍才发现,这居然是两个不同的单词。
    只能怪自己对字母不敏感了。

    总之,本书乐趣十足,是居家旅行必备图书。