よくかんでたべること

そのままのみこまずに、ね。

一杯の紅茶とHaskellで過ごした休日 : 関数型プログラミング言語をやってみる(1)

どうしても気になって気になって仕方がないものがありました。
それは関数型プログラミング言語です。

はじめてそのソースコードを見たのは2年ほど前に購入した「7つの言語 7つの世界」

7つの言語 7つの世界

7つの言語 7つの世界

Hakellという言語のソースコードには何が書いてあるのか本当に、まったく、さっぱり、ぜんぜんわかりませんでした。
ひっかかる箇所をネットで調べつつも、モナド、カリー化、高階関数、などなど聞き慣れない単語が飛び交い、その説明に余計にひっかかってしまい、まったく前に進めません。

好奇心にかられて無謀にも、話題のあの本を購入してしまいました。いわゆる、すごいH本。

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

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

今でも忘れられません。P.15で挫折しました。はやっ。
リスト内包表記で頭の中がパニックになったんです。かわいいカエルのさし絵にため息をつきながら本を閉じました。

9月入ってまもない休日に、再び本を開くことにしました。
きっかけは、まぁ、しんどいことがあったので、普段とはまったくかけ離れていることをやって少しでも自信がつけば良いなと思ったからです。
前回の苦い?経験があるので、挫折しないような雰囲気作りを...Haskellはイギリスだから紅茶をいれて...みたいな...意味なく形から入ってみようと試みます。

この本を購入して1年ちょっと経過しています。つまづいたときと比べて自分の成長を感じることができたのは本当にうれしかったです。
リスト内包表記はLINQラムダ式のおかげで何となく目が慣れていたり、数学のやり直しのおかげでコードの例に数式が出されても意味がわかって読み進めることができました。
とはいえやっとの思いたどりついたのは第5章まで。何だかつらいのに半分もいってない…そしてカリー化関数がどうしても理解できないつらさが勝って、歩みを止めてしまいました。

今回の進歩は「もしかしてすごいH本は最初から関数型プログラミング言語を分かっている人向けなのではないか」と思えるようになったことです。まず、そもそもの関数型言語についてよくわかってないため、一旦Haskellから離れ、OCamlで書かれたもっとやさしめ?の本を読むことにしました。