ふとしたきっかけから「圏論の歩き方」という本を読んでいる。圏論そのものはとても高度で強力な数学的概念なんだけど、その強力さゆえに応用範囲がとても広い。この本はそれらをほとんど目にもとまらぬ速さで駆け足に紹介しており、それゆえ、これ一冊で圏論を理解できるようなものでは到底なく、その名が示す通りに圏論のいわば「ガイドブック」になっている。なもんだから、読む側のこっちとしても、次の旅先をどこにしようかなとガイドブックを流し読みするくらいの気楽さでパラパラと読んでいる。 さて、その中の「プログラム意味論と圏論」という章で、ある処理を行うプログラムを、原始的なプログラミング言語(機械語)で、専門的に言えば「手続き的」に、記したものと、同等の処理を関数型プログラミング言語で表したものとを比較している箇所にこんな記述があってページをめくる手が止まった。 (後者のプログラムの方は)数学の関数や写像を定義す

