2014-12-24
話をしよう、あれは今から…36万…あー…いつだったか。 最初にHaskellに触れた時は…確かー…1万…まぁいい。 君たちは純粋関数に…まぁいいや。 … … そうそう、思い出した。 僕が初めてHaskellに触れたのは、今から約1年前くらいのことだった。 今日はその話をしようと思う。
まず最初にHaskellに触れた時、果敢にも…いえ、無謀にも僕は書籍を持たずに入門しようとしました。 そしてもっとも最初に目に触れたコードがこれ。
main = putStrLn "Hello, World!"
「普通の出力だ、簡単だ」 そう思ったのは間違いでした。
Prelude> let fac n = if n == 0 then 1 else n * fac (n-1)
「!?? !?!?」
Prelude> fac 42
1405006117752879898543142606244511569936384000000000
「!?!?!? 長…数字が長…too long suuji!!!???!?」
fac 0 = 1
fac n = n * fac (n-1)
main = print (fac 42)
ここで僕はHaskellをやめました。 バイバイHaskellまた次の時空で。
「お前にHello,world!! お前にHello,world!!」
そんな言葉が脳内に響き渡る。 そう、これは今思えば。 これこそが、僕の中に覚醒したHaskell Curryの紋章の声だったんだっ!!
僕が「すごいHaskellたのしく学ぼう!」を手に入れたのはそんな時でした。 「すごいHaskellたのしく学ぼう!」、通称「すごいH本」。 英語で言うと「Great-H-Book」。
これにはprintという名の鈍器はありませんでした。 もちろん「名状し難いprintのようなもの」も登場しません。 ( 最初の方は )
僕はこの魔本を手にし、Haskellの地を歩いていくことにしました。