Haskell の初歩から説き起こす
これも図書館で借りた本だ。 難しいけれど読みごたえがある。 何度も読めば、Haskell の魅力がわかってくる。 たとえば、自然数 n の階乗 fac n が fac n = product [1..n] で済むということがわかっただけで、痛快である。
また、これは Haskell に限らないのだが、 foldl の使い方には感心した。そして、 Ruby の inject メソッドのとの類似性を認識した。
この本は導入部で ある関数の実装方法をまずいろいろな方法で提示している。 その後、個別の話題、たとえば型、リスト、モナドなどの個別の話題を説明している。 このような流れは私の好みである。
ただ、Haskell について全く知らず、Lisp もまったく知らない初心者が、 この本についていくのは苦しい。 青木峰郎氏の「ふつうの Haskell プログラミング」 から入っていくのがいいと思う。
そして、おじさんとなった私から見ると、 文体が少し舌足らずなのが気にかかる。 p.80「さくっと」p.81 「ほっとくと」など。
いくつか注釈。
P.47、<配列について。(中略)本書では取り扱わないことにします。> とあるが、実際には p.180 以降で取り扱っている。
p.101、<constructor は(中略) ここでは『関数プログラミング』の訳語に従って 「構成子」としました。>とある。この『関数プログラミング』は、 Bird と Wadler の本を意味している。
p.203、ハッカーとなるために学ぶべきプログラミング言語の5つのうち、 著者はこう記している。< Lisp の代わりに Haskell を学ぶ方が良いのではないか考えている。 > また、小飼弾氏は、Haskell は認めながら、Lisp は残すべきとしている。 私も、何らかの形で、 Haskell はハッカーが学ぶべき言語として選ばれるべきだと思う。 私が思うに、 Haskell は、プログラミング言語世界の、共産党のような言語だ。 理想を追及する余り、一般に用いられ、普及することは今後ないだろう。 しかし、その理想を追及する姿勢は、他の言語に影響を与えるのだ、と。 (2008-04-25)
p.196 から、外部パッケージの使い方がある。本書では Cabal というパッケージシステムについて書かれているが、 現在は Stack である。
p.157 の枠囲みのコード例のうち、下段の isValidPos の定義は、途中で行変えがなされていない。 p.172 の全体版が正しい。
書 名 | 入門 Haskell |
著 者 | 向井 淳 |
発行日 | 年 月 日 |
発行元 | 毎日コミュニケーションズ |
定 価 | 円(税別) |
サイズ | |
ISBN | |
NDC |
まりんきょ学問所 > 関数型言語 > Haskell > 向井 淳:入門 Haskell