2017/10/03
(この記事は『Haskell入門 関数型プログラミング言語の基礎と実践』の書評もとい宣伝です)
Haskell は研究者から開発者まで様々な人が関わり発展している言語です。純粋なエンジニアがHaskellを学び始めるとファンクタやモナドなど数学由来の概念に惑わされ、まともなアプリケーションを開発できるスキルを身につけるところまでたどり着かないというのはよくある話だと思います。これらの概念は決していたずらにHaskellを難しいものにしているわけではなく、むしろ他の言語にはない素晴らしい機能を提供してくれるものです。しかし学習の段階ではどこまで学ぶべきか折り合いをつけるのが難しく入門の敷居を高くしてしまっているのも事実です。
技術評論社より新しく出版された『Haskell入門 関数型プログラミング言語の基礎と実践』は「まったくの初心者がHaskellでアプリケーションを作れるようになるまでの最短ルートが書かれた本」だと思います。基本的な文法解説はもちろん、モダンな開発環境の構築方法からコマンドラインツールやWebアプリケーション作成の具体例までカバーされているかなり贅沢な内容です。前述したような数学由来の概念はツールとしてどのように使うべきかと言うところに焦点が当てられて解説されており、エンジニアにとってはかなり分かりやすいものになっていると思います。第5章 モナド
よりも先に第4章 I/O処理
が独立して用意されていることからも、いかにアプリケーションが作れるようになるかを重視されているかが分かります。
手に取ると思ったよりも大きな本です。ページ数は432と分厚いですが、本全体を通して動くコードがたくさん載っていて「すべてを書いて理解する」と書いてあるように自分で手を動かして理解したい人にはもってこいだと思います。表紙に紫と青で書かれたリストの括弧はとても印象的で、僕はリスト本と愛称で呼んでいたりします。
著者の1人である hiratara さんは自身のブログで
今回執筆したHaskell入門ではとにかくHaskellでアプリケーションを作ることにフォーカスし、1冊読むだけで自分の作りたいアプリケーションが作れるようになることを目指して書かれた本です。
と書かれています。実際に読んでみると、
などの特徴は今までのHaskelの入門書とは一線を画していて実戦重視の内容になっていると思います。また執筆時に載せられなかった内容もQiitaに投稿されていてこちらの記事も合わせて読むとより理解が深まるでしょう。
僕は『Haskell入門』にはレビューの時から関わらせていただいて、その時から早くこの本が出版されないかなと楽しみにしていました。冒頭でも述べたようにHaskellには純粋なエンジニアには慣れないワードや概念が少なくないため入門する敷居が高いと言われています。しかし実践を見据えて書かれている『Haskell入門』は新しく学びたい人や一度挫折してしまった人にも読んでほしい本です。最後に、もしHaskellを学んでいてわからないことが出てきたら周りの人に質問してみるのも良いかもしれません。日本にはHaskell-jpというユーザーグループがあり、Slackでは誰でも気軽に質問できるチャネルが用意されています(雰囲気を知りたい方はこちら)。Slackに参加して気軽に質問を投げてみるのも学習の近道かもしれません。