すごいHaskellたのしく学ぼう! の感想
参照データ
タイトル | すごいHaskellたのしく学ぼう! |
発売日 | 販売日未定 |
製作者 | Miran Lipovača |
販売元 | オーム社 |
JANコード | 9784274068850 |
カテゴリ | ジャンル別 » コンピュータ・IT » プログラミング » ソフトウェア開発・言語 |
購入者の感想
Haskellは極めて抽象的かつ他の言語の何の機能にも当てはまらない概念が多く,
型コンストラクタ,ファンクターなど,
一見すると
「こんなもの定義して一体何が嬉しいんだ?」
となってしまうものがたくさんある.
本書の素晴らしいところは,その疑問をフォローして理解させてくれるところ.
もしこれがお固い凝り固まった書き口の入門書なら
「ファンクターとは(a->b)への関数とf aを受け取り,f bを返すものである.」
と言ったような,
「いやだからそれが何なんだって聞いてんだよ!だからどうした!」
と言いたくなってしまうような説明になってない説明をするところだろう.
せっかく一般的で汎用性の高い考え方について触れているというのに,
それの「利用法」を示さずに謎を作り上げるだけのダメダメ入門書がいかに多いことか
と,手元の大日○図書さんの数学の教科書を睨みながら思っていたりするのだが,
本書は違う,例えば,
高度で理解に苦しむであろう概念の説明を終えると,「なんじゃこりゃ!?」と言った一言で
こちらの不安を拭い去りつつ,何かを作り上げるのをこちらに見せつつ,
概念の説明に入る.
この概念の説明というのがまた分かりやすい.
どっかの大日本○書さんの数学書とは違って,
無駄に抽象的で分かりにくい例えなどはあまり使わずに全て説明しきる.
こちらに「あぁこれ無理.」
と思わせるスキを与えないのだ.
全国の数学書に見習ってもらいたい構成である.
Haskellをストレスなく学ぶなら本書が最適だと思う.
型コンストラクタ,ファンクターなど,
一見すると
「こんなもの定義して一体何が嬉しいんだ?」
となってしまうものがたくさんある.
本書の素晴らしいところは,その疑問をフォローして理解させてくれるところ.
もしこれがお固い凝り固まった書き口の入門書なら
「ファンクターとは(a->b)への関数とf aを受け取り,f bを返すものである.」
と言ったような,
「いやだからそれが何なんだって聞いてんだよ!だからどうした!」
と言いたくなってしまうような説明になってない説明をするところだろう.
せっかく一般的で汎用性の高い考え方について触れているというのに,
それの「利用法」を示さずに謎を作り上げるだけのダメダメ入門書がいかに多いことか
と,手元の大日○図書さんの数学の教科書を睨みながら思っていたりするのだが,
本書は違う,例えば,
高度で理解に苦しむであろう概念の説明を終えると,「なんじゃこりゃ!?」と言った一言で
こちらの不安を拭い去りつつ,何かを作り上げるのをこちらに見せつつ,
概念の説明に入る.
この概念の説明というのがまた分かりやすい.
どっかの大日本○書さんの数学書とは違って,
無駄に抽象的で分かりにくい例えなどはあまり使わずに全て説明しきる.
こちらに「あぁこれ無理.」
と思わせるスキを与えないのだ.
全国の数学書に見習ってもらいたい構成である.
Haskellをストレスなく学ぶなら本書が最適だと思う.
今までHaskellの入門的な本はいくつか出ていましたが、やっと本当の入門本が出たな、という印象です。
とにかく説明が親切です。理解が難しそうな概念や関数が出て来たときには、
短くて簡単なコード例をいくつも示してくれているので、
自分で対話環境に打って動かしながら理解を深めることもできます。
またこれらの短いコード例についても、日本語でしつこいぐらいに
「このコードはこういう意味です」というのを書いてくれているので、
自分の理解を確かめながら読み進めることができます。
Haskellで最もつまずきやすいMonadの説明には、ものすごいページ数を
割いて丁寧に解説されています。
まず8章と9章でMonadの話を出さずにI/Oのやり方だけをを徹底的に訓練。
更に、7.10節でFunctorという概念を学び、MaybeやTreeなどの具体的な
型でfmapがどのような意味を持つかを説明してくれます。
そして、11章ではFunctorについて更に詳しく学び、更にその機能追加版である
Applicativeについて学び、今まで何度も出て来たMaybeもIOも更には関数さえもが
Applicativeであることを学びます。
その後、13章でApplicativeの更なる機能強化版としてMonadが登場し、
具体的にMaybeやリストなどの例でMonadの機能がどのように役に立つかが
わかります。
14章ではWriter, Reader, State, EitherなどのMonadインスタンスの意味や
使い方を学び、またliftM, join, filterM, foldMなどのモナディック関数を学び、
更には自分でMonadのインスタンスを定義するところまで学びます。
というように、全部で400ページ程の本のうち200ページ近くがMonadに関連する
説明に割かれおり、Functor, Applicative, Monoid, Monad
とにかく説明が親切です。理解が難しそうな概念や関数が出て来たときには、
短くて簡単なコード例をいくつも示してくれているので、
自分で対話環境に打って動かしながら理解を深めることもできます。
またこれらの短いコード例についても、日本語でしつこいぐらいに
「このコードはこういう意味です」というのを書いてくれているので、
自分の理解を確かめながら読み進めることができます。
Haskellで最もつまずきやすいMonadの説明には、ものすごいページ数を
割いて丁寧に解説されています。
まず8章と9章でMonadの話を出さずにI/Oのやり方だけをを徹底的に訓練。
更に、7.10節でFunctorという概念を学び、MaybeやTreeなどの具体的な
型でfmapがどのような意味を持つかを説明してくれます。
そして、11章ではFunctorについて更に詳しく学び、更にその機能追加版である
Applicativeについて学び、今まで何度も出て来たMaybeもIOも更には関数さえもが
Applicativeであることを学びます。
その後、13章でApplicativeの更なる機能強化版としてMonadが登場し、
具体的にMaybeやリストなどの例でMonadの機能がどのように役に立つかが
わかります。
14章ではWriter, Reader, State, EitherなどのMonadインスタンスの意味や
使い方を学び、またliftM, join, filterM, foldMなどのモナディック関数を学び、
更には自分でMonadのインスタンスを定義するところまで学びます。
というように、全部で400ページ程の本のうち200ページ近くがMonadに関連する
説明に割かれおり、Functor, Applicative, Monoid, Monad