Haskell advent calendar 2013 23日目の記事です。
諸兄方のエントリーと比べて、非常にレヴェルの低い話になると思いますが、背伸びしてもしょうがないので身の丈にあった、話をしたいと思います。
関数型プログラミング言語の関心が高まっているので、これからHaskellを始めようと言う人も多いと思いますが、はて?どんな本を読んだらいいんだろう?となることと思いますので、自分が読んで良かった本を3冊、独断で推薦します。
ふつうのHaskellプログラミング
今年、ふと思い立って、「H本読書会」という勉強会を開催しました。
その時に使ったテキストが本書となります。
残念ながら、現在絶版となっていますが、中古ならば手に入るようですので、是非お早めにどうぞ。
おすすめポイント
実際にプログラムを書いてUNIX系のコマンドを実装しながら、少しずつHaskellの機能を紹介していく形式になっていて、Haskellや関数型言語の知識に乏しい人にも優しい作りになっています。その分、関数型言語の理解に必要な、あんなことやこんな*1ことについて、ほとんど説明がありません。しかし、そういうのはこの後に取り上げるような本に色々書いてあるので、むしろ必要なかったと思います。
この本は、読者に「なんだ、Haskellって普通じゃん!」と言う感想を持ってもらうことを主眼に書いてあります*2。そのため、Haskell初心者で、「Haskell=怖い」という先入観のある人には特におすすめできると思います。
残念ポイント
古い本なので、一部、現在のGHCでコンパイルできません。
特に、後半のWikiを実装する部分は、結構直さないと動かなかった気がします。なので、手前味噌ですが、GHC7.6.3に対応させた版をここに置いておきます。
すごいHaskellたのしく学ぼう!
言わずと知れた(かも知れない)、Haskellの凄い本です。通称「すごいH本」。前出のH本読書会は、ふつうのH本をテキストとしたシリーズを終えているので、次は「すごいH本読書会」として開催予定です。現在、鋭意充電中です(ォ。
おすすめポイント
とにかく、話題が豊富です。モの付くあれとかも、ふんだんに紹介されています。同じくMoから始まるmonoidに付いても美味しい説明があります。恥ずかしながら、monoidに関してまともな説明を見たのはこれが初めてでした。エピソードに色々なジョークが織り交ぜられていて、ユーモアを交えて愉快に物語が展開します。しかし、自分は元ネタが一つも分かりませんでした。
残念ポイント
Haskellの基礎的な部分の説明もありますが、超スピードで駆け抜けてしまうので、初心者には厳しいんじゃないかと思います。しかし、一冊ですべてを網羅するというのは、所詮不可能なので、上記の「ふつうのH」をすませてから読むのが良いかと思います。
あと、突発的に難しい話題になる箇所が3カ所ぐらいあります(ソース俺)。そういう所は、みんなでワイワイ勉強しながら突破したらいいと思います*3。
プログラミングHaskell
言わずと知れた(かどうかは分からないが)、Haskellの定番書です。薄い本ですが、プログラミングの薄い本の法則に漏れず、内容は非常に濃いです。こんなに薄いのに、余裕でパーサーの実装まで話が進みます。
おすすめポイント
Haskellというより、関数型言語の考え方や、実装方法に付いて良く学べます。というより、関数型言語の説明をする本の例示がたまたまHaskellだった。系の本な気がする。僕らなんか及びもしないような難しい事をさらっと言ってのける!そこにシビレる憧れるぅ!!という気持ちにさせてくれる良書です。
残念ポイント
例文が、いきなりHaskellじゃありません(!!!)。というのは、言い過ぎですが、演算子がASCIIではないので、予備知識がないとコードに変換できません。すかさずP.200を見ると凡例が書いてあるので親切ですね。最後まで読むとご褒美で貰える仕組みです。てか、これ一番最初に載っけて欲しかったし。
内容難しいでs。とは言え、上記2冊を読み終えていれば、内容がサクサク入ってくると思うので、おすすめです。