コンピューター・サイエンスとカテゴリー論
1940年代、「純粋」数学の一分野として「カテゴリー論」が生まれた時、ある数学者はそれを "general abstract nonsense" 「ナンセンスな抽象化の一般化」と呼んだ。 数学は、もともと抽象的で現実離れしたところはあるのだが、そのなかでも馬鹿馬鹿しいくらい抽象化を進めて何の役にも立たないのが「カテゴリー論」だという意味だ。 その後、カテゴリー論の重要性の認識は、ローベールのトポスによる集合論の再構成の仕事や、グロタンディックの予見的な仕事(現在の膨大なStack Theoryの源流だ)を通じて、数学の中では、確固としたものになっていく。 カテゴリー論は、確かに「抽象的」だが、数学では「役に立つ」! それどころか、カテゴリー論的アプローチは、「ナンセンス」なものではなく、現代数学の最も強力な武器だということが、多くの数学者に受け入れられて行く。 僕の院生時代は、そうした大きな転換の時代だったと思う。今では、カテゴリー論は、数学では普通のツールになったといって良いと思う。ただ、それは、まだ数学の中での話だ。 今また、面白い動きが出ている。それは、数学での応用に閉じない「応用カテゴリー理論」 Applied Category Theoryという新しい科学分野が急速に立ち上がろうとしていることだ。 「応用カテゴリー理論」がどのようなものであるかについては、ジョン・バエズの次のブログが、わかりやすい解説になっている。"What is Applied Category Theory?" https://goo.gl/TYoW7G この中でも触れられているのだが、コンピュータ・サイエンスは、カテゴリー論との接点は、今までもなかったわけではない。ただ、それだけではないというのは、彼の次のような言葉を見ればわかる。 「私はプログラマではない。この点は弱点だと思っているので申し訳ないのだが、コンピュータ・サイエンスの中でのカテゴリーの扱いについては、かなりのことは知っていると思う。しかし、その知識はプログラミングのハンズオンでの経験からではなく、カテゴリー論の側から学んだものだ。例えば、私はHaskellの話を聴く前からモナドのことは理解していた。私の最初の反応は、「この人たちは、モナ