2009-01-15 [長年日記]
λ. 圏論屋さんに名前をつけさせるのはやめろってば
haskell-cafe の Comments from OCaml Hacker Brian Hurt というスレッドで、OCamlハッカーのBrian Hurt 氏のブログエントリー Random thoughts on Haskell が紹介されていたのだけど、その紹介で引用されていた部分が面白かったので以下に翻訳して引用する。
Haskellで悩ましい点のひとつに名前付けがある。 例えば、多くのデータ構造が上で説明した差分リストに似ているという共通のパターンに気づいたとする。 つまり、それらには空っぽの状態があって、末尾に何かを追加していくことができるわけだ。
そしたら、当然イディオムを一般的なパターンとして表現するHaskellの道具(この場合には型クラス)を使って、このパターンに名前をつけてやりたくなる。 どんな名前をつける? 僕は「Appendable」とかそういう名前をつけたくなる。 けど、違うんだ。Haskellはこのパターンを「モノイド」と呼んでる。 ああ、確かにすべてのモノイドは空の状態と末尾に追加できる能力を持ってる何かだ。
モナドはちょっとだけ一般化されているけど、モノイドと似たようなもものだ。 かつて、サイモン・ペイトンジョーンズは、Haskellの最大の過ちはモナドを「暖かいふわふわしたもの」ではなく「モナド」と呼んでしまったことだと言ってたことがある。 その上Haskellはこの間違いを悪化させている。 Haskell開発者諸君、もう category theorist に名前をつけさせるのはやめろってば。 頼むよ、お願いだから。
まあ、モナドはともかく、Arrow とか Applicative とか比較的新しい概念は、圏論由来の名前というよりは直観的な名前になっていると思うけど。