Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save aiya000/fe14623b1612265ec04e to your computer and use it in GitHub Desktop.

Select an option

Save aiya000/fe14623b1612265ec04e to your computer and use it in GitHub Desktop.

2014-12-24

自称Javaristaの僕がいかにしてHaskellに触れて純粋になったか

 話をしよう、あれは今から…36万…あー…いつだったか。 最初にHaskellに触れた時は…確かー…1万…まぁいい。 君たちは純粋関数に…まぁいいや。 … …  そうそう、思い出した。 僕が初めてHaskellに触れたのは、今から約1年前くらいのことだった。 今日はその話をしようと思う。

第一章「お前にHello,world!! お前にHello,world!!」

 まず最初に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の地を歩いていくことにしました。

第四章「お待ちなさい、モナドが曲がっていてよ」

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment