トップ «前の日記(2005-08-23) 最新 次の日記(2005-08-27)» 月表示 編集

日々の流転


2005-08-25 [長年日記]

λ. 今日のorz

LLDNのプログラムからリンクされてないなぁと思って確認したら、送ったメールが 550 User unknown でエラーになってたというオチ。なんで今日まで気づかなかったんだ俺。orz

λ. 人間や生物や生態系を設計したやつは余程のバカだね

メモ。へー、そうなのか。面白い。

λ. ファンクタ(functor)とは

私もファンクタの原義については知らなかったので、向井さんと同じく目から鱗だった。

MLのfunctorは確かに圏論の関手として解釈できないこともない。moduleのsignatureは型の名前と値の名前で構成されているので、適当な操作を施せば圏として解釈できる。moduleはこの圏から通常のデータ型と関数からなる圏への関手の一種。そういった関手の全体は圏になる*1ので、MLのfunctorは、あるsignatureのmoduleからなる圏から、別のsignatureのmoduleからなる圏への関手。 もっとも、それを意図してfunctorと名づけられているかと言われれば微妙な気はするけど。

(2005-09-03 追記) Computational Category Theory の 3.5.1 Functors computationally に次のように書いてあった。

The word `functor' is rather overused, occurring not only in category theory but also as programming constructs in languages like Prolog and ML (the latter is related to the categorical notion of functors).

(2005-09-04 追記) そういや、Prologのfunctorは「引数を与えられることにより式を構成する構文的な要素」 の意味か。

*1 ダイアグラムの圏のようなもの