[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1589] Re: Ruby のポインタ



In article <200103081608.AA00921@xxxxxxxxxxxxxxx>
Kazuya Maebashi wrote:
>オブジェクトからひもが生えてるモデルだと、変数から変数に
>代入するときに、ひもが増えるのがちょっと不自然ですが、
>逆のモデルだとそこは解決されてますね。
>
>そのかわり、nullはどうしよう? と思うし、また、

オブジェクトからひもが映えてても説明出来ないような^^
ちなみに私はnullもオブジェクトということでこの点問題にしません
:P
# 言語仕様にはそうは書いてなかったですけど^^;;厳密に考えると妙な
# 部分もあったと思いますがほとんどのことは説明可能という意味で
未初期化とnullはもちろん別視するんですよね。未初期化はひもがどこ
にもくっついてなくて、nullはnullオブジェクトにくっついてる、と
^^。

>  x.getHoge()
>
>とやったとき、getHoge()が返すのは何なんでしょう?
>
>私は「オブジェクトにつながったひものはしっこ」を返して
>くれるんだと思ってましたが、変数からひもが生えてるモデルだと...

もちろん「オブジェクト」を返します^^。
# おっと、元々私のモデルというわけではなくて、前田修吾さんの主張
# をこう解釈しましたというだけですので、と念と押さねば^^。
## きちんと考えずに「いいかも」という感覚で受け取っているので、
## ちゃんと理解出来てないかもしれないし、だんだん元の主張を自分の
## 趣向でねじ曲げて違うモデルになってきてるし^^;
# さらにJavaの話じゃない(ある程度通用するけど)ことももう一度念を
# ^^;;。

Rubyとして如何なのかの正確なところは、前田さんやまつもとさんに直
接聞いたほうがいいでしょうね。私はfjあんまり見れる環境じゃないで
すけど前橋さんfj.comp.oopsに出張しません?:)

>引数渡しのときも、ひもの端を渡す方が自然な気がします。

私の解釈ですが、このモデルだと、メソッドパラメタではまさにcall 
by sharingって感じで、オブジェクトをcaller/calleeで共有しますよ、
と説明がしやすい気がします。
# もう「〜を渡す」という感覚すらなくなる。

先に書いた「返す」の部分も結局メソッド間でshareするともいえます
ね。「渡す」「返す」と言わないことでimmutable/mutableの重要性も理
解しやすくなるかも。全てがオブジェクトであり全てが参照で表せれば
こういう考え方が出来るということで素敵^^。

>まあ、所詮たとえ話なんで、ヨタ話以上のものではないんですけど。

初心者がより抽象的な理解をすんなりできるようなら、(Javaじゃ駄目だ
けど)いいなぁと妄想にふけります。
さて、私も全てがおぶじぇくとな方に確認したくなってきたけど、きっ
ちり説明する余力無しかも。Smalltalkerさんー

>そういえば、私の書いた「メカニカルコンピュータ」のGCも、
>
>>>変更し、GCの時には全体がよっこらしょと傾いてぐらぐらっと振動して
>>>つながってないオブジェクトががらんごろんと転げ落ちる、というモデル
>
>これじゃ参照してるけどされてないオブジェクトを解放し損ねますね (^^;

アプリケーションだけはコンピュータ自身に繋がっているなら、そこに
繋がらないオブジェクトは転がり落ちるということで^^。
でもThreadは駄目だなぁ。

--
木下 信@ひらつか
http://www.sk-jp.com/
というわけで余裕がないので私は一旦打ち止め_o_。