あどけない話

Internet technologies

すごいHaskellたのしく学ぼう!

ゾウ本こと「Learn You a Haskell for Great Good!」の訳本が、ついに発売されます。

Learn You a Haskell for Great Good!: A Beginner's Guide

Learn You a Haskell for Great Good!: A Beginner's Guide

訳本のタイトルは、「すごいHaskellたのしく学ぼう!」です。

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

すごいタイトルですね! 複数のネイティブに聞いたところ、原書のタイトルは正しい英語じゃないそうです。だから、適切な訳か考えてもムダですよ!

Amazon では、発売日が2012年5月23日になっていますが、オーム社の方は2012年5月22日だとおっしゃっています。訳者の田中君オーム社の方に引き合わせたのは昨年の5月ですから、ほぼ一年がかりのプロジェクトでした。遅々として進まない翻訳作業を横で眺めていてハラハラしていましたが、ついに世に送り出せることになって嬉しいです。

内容

「プログラミングHaskell」と「すごいHaskellたのしく学ぼう!」のどちらを買うか迷っている人は、どちらも買いましょう。:-) 本を一冊読むだけでは、プログラミング言語は習得できないでしょうから。

「すごいHaskellたのしく学ぼう!」も「プログラミングHaskell」と同様に、最初は純粋な話から始まります。「プログラミングHaskell」と比べて詳しく書いてあるのは、let やレコード、モジュールといった構文の話です。第8章になってようやく入出力の方法が説明されます。

この本が特にいいのは、第11章以降です。

  • 第11章 ファンクターからアプリカティブファンクターへ
  • 第12章 モノイド
  • 第13章 モナドがいっぱい
  • 第14章 もうちょっとだけモナド
  • 第15章 Zipper

Haskell を学ぶ上で最大の障壁はモナドだと言われています。最近では、誰でも分かるファンクターから始めて、アプリカティブファンクターを経由し、モナドへの特殊化の道を説明するのがブログ記事などでの流行なんですが、この本は唯一その手法に従っている本です。ゆっくり読んで行けば、モナドも単なる型クラスの一つであることが分かるでしょう。

モノイドを解説しているのもいいですね。命令脳から関数脳になったと実感するのは、いろんな問題が map reduce に見えてくるときです。さらに一歩進むと、たくさんのものがモノイドに見えるようになります。初心者のうちに、たくさんのモノイドの例を見ておくのはいいことだと思います。

それから Zipper! 関数的なデータ構造、たとえば木では、親から子へのリンクはありますが、子から親へのリンクがありません。だから、親から子へ移動することはできても、子から親へ移動することはできないように思えます。でも、できるんです。そう、Zipper を使えばね! 僕も最近お世話になりました。

軽やかな文章とポップな絵で、たのしく Haskell を学べる本書は、自信をもってお勧めできます。