セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

マーブルワーズ

Haskellを始めるにあたって読むべき3冊の本

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冊を読み終えていれば、内容がサクサク入ってくると思うので、おすすめです。

まとめ

という訳で、紹介した本を紹介した順番で読むと良いと思います。自分は、見事に逆順に読んでしまったのでつらかったです。

おそらく、来年の2月ぐらいになると思いますが、「すごいH本読書会」を開催できると思いますので、そのステマ*4が、ふんだんに織り込まれてます。(なお、会場募集中です(ぉ)

あと、Haskellからは外れますが、万が一、根底にある「圏論」について学びたくなった場合に備えて、圏論勉強会の動画も置いておきます。

http://youtu.be/uWST7UivqeM

*1:モナなんとかとか

*2:作者の心を読んだ!

*3:待たれよ、すごいH本読書会

*4:隠れてない