--- MITSUJI Takamasa <mitsuji@....jp> からのメッセージ:
> 面白いですね。インスタンス化してから機能を追加できるんですね。
Rubyだとたまたま(^^;、
> >ありゃ。同じmoduleを再び召還するのは駄目らしいです(^^;;;
という風に敗北しちゃいましたが、
敗北せず、きちん(?)とソレを実現できる言語を作ることは可能でしょうし、
きっと既に実在していると思います。
よく知りませんが、もしかしてJavaScriptとかだと、できるでしょうか?
オブジェクトのprototypeっていう属性を適宜いじると、できるのかな…
prototypeベースのOOP
(というかOO:動的分類を「実際に使える」かどうかは
実装言語だけじゃなく"考え方"の問題でもあるでしょうから)
だと、結局のところ型とかも属性の一種じゃないかという開き直り(^^;が
できちゃったりするようです。
#そういえば、うろ覚えですがたしかロールプレイングゲームには
#「クラスチェンジ」という言葉があったんではなかったでしょうか?(^^;
#あれですよ、あれ。
状態遷移ならぬ「分類遷移」は、私が即興で考えた造語です。
まあ、あんまりやると、「モデリング」畑からは嫌がられそうですが。
静的分類と動的分類の境界が曖昧になるというか。
> Cの関数ポインタとかC#のデリゲートとかでも同じようなことが
> 出来そうですけど、こんな簡単には出来ないでしょうね。
関数(メソッド)ポインタのような概念がある言語だと
結構楽にできちゃいますね。
デリゲートもメソッドポインタの一種のようですし。
たしかJSも「関数をObjectの属性に代入しておく」ことで
メソッドを実現するのでしたよね…。
その手の言語は、まあ沢山(^^;あるわけですが、
例えばその1つとして個人的に気になってるものとして
Io (http://www.iolanguage.com) というのが有るようです。
__________________________________
Take an action against poverty
http://pr.mail.yahoo.co.jp/whiteband/