http://d.hatena.ne.jp/m-hiyama/20060615/1150330754から一連の議論を読んで、オブジェクト指向の話でも書こうかしらん、と思ったけど、そのうち余代数の方に興味がシフトしていってhttp://www.chimaira.org/docs/AlgebrasCoalgebras.htm とか http://citeseer.ist.psu.edu/jacobs99coalgebra.html とかを読んだ。なるほど。やっとこさ「余代数」なんてへんちくりんなものがわかった…気になった弱いなぁ。いや、面白い。
しかし、例えば状態を扱うのに、例えばHaskellでは代数(モナド、例えばStateモナド)でやって、Java(のようなOO言語)では余代数でやっている(事になる)のが何とも不思議、というかまだ頭が整理されてない。
確かにコードを書くときの扱い方は違う気がする。モナドの方は陽に状態を戻り値として持たなきゃいけなくて、ユーザが意図的に状態付きにして返す。Javaはそんな事しない。…けど、単なる関数型と手続き型のfavorの違いじゃないかという気も。
HaskellのStateモナドはを自動化していて(>>=オペレータ)、Javaでは言語的にを自動化しているって事なのかなぁ。ん?それって何か目新しい事言ってる?
…自分で書いてて( ´_ゝ`)フーンて感じなんだけどいいのかそんなんでw