関数プログラミング実践入門


著者の人と直接的な面識はそれほどない(twitter上では知ってたし会話したことあるはず)のに、ある日突然この本(の電子書籍版)いただきました。ありがとうございます!
というわけで、頂いてから結構期間空いてしまって申し訳ないんですが、感想書きました。


電子書籍はここから買えるよ



まず著者の方のblog貼っておきますね
http://notogawa.hatenablog.com/entry/2014/11/08/155402


さて、あくまで個人的に読んだ印象を書いてみます。

まずこの本の1番の大きな特徴としては
関数プログラミングという手法がなぜ優れているのか?便利なのか?」
ということに関して他の言語と比較しつつ記述してある部分が本全体の半分くらいを占める点でしょうか。こういう部分がここまで多く書かれている本は、今までそれほど多くなかった気がします。
「なんとなく関数プログラミングに興味を持ってるけれど、関数プログラミングの手法を使うと具体的にどう嬉しいんだろう?」
という疑問を持ってる人にぜひ読んで欲しいですね。それなりになにかしらの言語の経験がある人なら、そんなに前提知識なくても読めると思います。


それでいて、全部がそういう内容ではなく、後半はHaskellを使いつつ、具体的に関数プログラミングの嬉しさを説明したり、Haskell自体のチュートリアルにもなっていて、基本的なHaskellの知識も身につくようになっています。



個人的に、あの「すごいhaskellたのしく学ぼう」をちゃんと読んだことないので、それとの比較書けないんですが、この本でHaskell入門でも普通にいいと思います。
新しい本で、何より著者の方が普段Haskell使って仕事してるだけあって、細かい内容に関しても安心して読める感じです。
後半にcabalの使い方や、cabal sandboxのあたりについて具体的に書いてあるのも実践的でよいと思いました。

ただ「具体的なHaskellの説明は本の半分くらい」「そもそもそれほど厚い本でもない」ということにより、そこまでHaskell部分が詳細に書かれてるわけではないので、「これ読めばHaskellだいたいわかる」とか「わからないことがあったら、細かいところまで含めて逆引き的に使える」という感じの期待はしないほうがいいですね。
さっきも言いましたがHaskell入門する人とか、一度挫折した or 最近やっていなくて忘れかけているけど、もう一回やってみようかなー、という人にとっては申し分ないと思います。



あとは、前半がHaskellに偏ってなく、後半のHaskell部分もがっつりやる感じでなく概要をつかむのにはちょうどいい分量だと思うので
「普段Scalaやってるけど、少しだけHaskellに興味ある」
そもそもべつにHaskellそれほど覚えたいわけでもないけど、なんとなく関数型とかHaskell知っておきたい」
とか、単にHaskell勉強したい人だけでなく、ある程度広い層の人が気軽に読んでも楽しめるのではないかと思います。



あと、個人的に

例外周り(とくにC++の)に怖さを感じないとしたら、あなたは本当はよく理解していないか、もしくは仕様書に近い存在なのかもしれません

という記述が註にあったり、さらっとCoqやAgdaの紹介がされていたり、ところどころ面白い記述が埋め込まれていてよかったですw


というわけで、
電子書籍で買えるのでみんな買いましょう