Haskell
純粋関数型プログラミング言語。遅延評価と強力な型システムを持ち、研究と実務の両面で関数型の考え方を広めた。
時代背景
設計者4名による共著論文『A History of Haskell』によれば、1987年9月、オレゴン州ポートランドで開催された関数型プログラミング言語とコンピュータアーキテクチャに関する会議(FPCA)の場で、ある集まりが持たれた。当時、非正格(non-strict)で純粋関数型のプログラミング言語が10種類以上乱立しており、意味論的な力はどれも似通っているのに共通言語が無いことが、この種の関数型言語の普及の妨げになっているという強い合意がその場で形成された。そこで、新しいアイデアの伝達を速め、実アプリケーション開発の安定した基盤を提供し、他の人々が関数型言語を使う動機となる言語を設計するための委員会を作ることが決まった。この経緯は、1990年4月1日付の最初のHaskell Report バージョン1.0の序文に記されているという。
名前の由来
設計者本人たちの論文によれば、1987年9月のイェール大学での会合で、Philip Wadlerの提案による方式で言語名が決められた。参加者が名前を提案して黒板に書き出し、Semla・Haskell・Vivaldi・Mozart・CFL・Funl 88・Curry・Frege・Peanoなど多数の候補が並んだ。各自が嫌いな名前を消していく過程を経て、最後に残ったのは数学者・論理学者Haskell B. Curryにちなんだ『Curry』だった。しかしその夜、参加者のうち2人が「カレー」にまつわる駄洒落(カレー粉、機嫌取り=currying favour、さらにロッキー・ホラー・ショーの主演俳優Tim Curryなど)を心配し、翌日さらに議論した末に『Haskell』という名前に落ち着いた。後になって、これがPascalやHassle(面倒事)と混同されやすいことに気づいたという。
小話
設計者本人たちの論文によれば、Haskellと名付けられた経緯には後日談がある。命名の許可を求めてVirginia Curry(Haskell B. Curryの妻)を訪ねたPaul Hudakは、彼女の家に滞在したことのある人々(Alonzo ChurchやStephen Kleeneなど)の思い出話を聞かせてもらった。Curry夫人はHudakのペンシルベニア州立大学での講演(もちろんHaskellについての講演)にも足を運んだが、内容は理解できなかったという。それでも彼女はとても親切で、別れ際にこう漏らしたと記録されている——『あなたも知っての通り、Haskell(本人)はHaskellという名前を実は好きじゃなかったのよ』。
仕組み
設計者本人たちの論文によれば、Haskellの根底には1970年代から80年代にかけて独立に3回発見されたとされる遅延評価(lazy evaluation、非正格評価とも呼ばれる)の考え方がある。Dan FriedmanとDavid Wiseによる『Cons should not evaluate its arguments』(1976年)、Peter HendersonとJames H. Morris Jr.による『A lazy evaluator』(1976年)、そしてDavid Turnerによる一連の言語(SASL・KRC)が、それぞれ異なる角度から遅延評価を追求していた。Haskell委員会はこれらの流れを統合し、複数存在していた非正格な純粋関数型言語のコミュニティに共通の言語を与えることを目指したと論文は述べている。