ごとけんです

In message "[ruby-list:13808] Re: What is Object in Ruby? (Re: Ruby and LISP)"
    on 99/04/16, Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> writes:

>|まつもとさんが以前「状態」についていっていたのはそういう
>|ことも含意するのだと理解しています。alternative な見方は
>|メソッドの結果の可能性全体をもってそのオブジェクトの状態
>|とみなすものです。こちらは coalgebra という名前の分野で
>|近年盛んに研究されていて、可能性全体をとることで一意性が
>|保証されるのでこれもいいかもと思って僕は脇でみています。
>
>coalgebra 自体は日常的な商売道具なのですが、それが一分野
>の名前になっているとは初耳です。

あー、分野というのはいいすぎかも知れないです。もっともあ
る対象が分野を形成しているかどうかはパラダイム論でない限
り問う必要もないかも知れないけど。去年からワークショップ
も開かれています。

# http://www.cs.kun.nl/~bart/coalg_worksh.html
# http://www.elsevier.nl/locate/entcs/volume19.html

>                                ここでの意味は、オブジェ
>クトに対する全てのメッセージ(とパラメータ)に対する副作用
>と返り値の「表全体」をもってオブジェクトの状態と定義する、
>という感じでしょうか。非決定的だったら可能な状態を全部持っ
>てきて決定的な議論に持ち込むという、いかにも超越的という
>か数学的な態度ですね(つーか、数学なんだから当たり前か)。

まぁそんな感じです。ただ、この「表全体」というのを数学的
対象として構成できるかどうかが問題ですよね。coalgebra の
用語を使ってよいなら、データの構成の手順が induction に
対応するのに対して、オブジェクトの振る舞いの可能性は
coinduction に対応するというのが解法です。データの場合は
状態をその構成手順で指定できるけれども、オブジェクトの場
合は、構成方法(実装)を知ることができないというのがひとつ
の原理なので、こういう立場をとらざるを得ないというという
側面はあると思います。

>まつもとさんはもうちょっと気楽な感じが好みみたいだったけ
>ど。:-)

そうですね。だから coalgebra に基づく考え方は Ruby では 
alternative でしかないわけで :-)

-- gotoken