K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>引用の順序を変更しています。 > >> ただ、「PlayerがBoardの実体を保持していてはいかんでしょ >> う。」といった話をするときには、「実体」またはそれに類 >> する言葉が要るのではないかと思っています。 > >そうですね。 > >念のために言うと、僕も、実体という言葉に対して(ぱ)さんと >同じ感覚を持っています。 > >> > Python プログラマで一人、"call by object reference" >> > のことを指して "call by object" と呼んでいる例が見つ >> > かりましたが、これだと、日本語と英語で意味が逆になり >> > ますし。 >> >> 日本人でも、「オブジェクト==参照」という解釈の人もいる >> ようですから、「日本語と英語で意味が逆」になるわけでも >> ないような気がします。 > >以下の松本さんの例もそうなんですね。 > >> http://www.rubyist.net/~matz/?date=20030730 >> | もっとも多くの言語には「オブジェクト」でない「値」も >> | ある。またCの例を出すと、構造体はオブジェクトではな >> | い。代入によってコピーが発生するからだ。 BASICの文字 >> | 列もオブジェクトではない。 > >> 最初読んだとき、かなり違和感がありました。「参照」と >> 「値」の話ならその通りですが、上記の文を読む限り、「オ >> ブジェクト」が「参照」とほぼ同義で使われているからです。 > >まったく同様な違和感があります。 > >> >http://aspn.activestate.com/ASPN/Mail/Message/python-Tutor/509290 > >> ざっと読みました。 >> | (2) there is no pointer type in Python, so you >> | *can't* pass "a reference" to an object > >> Pythonは(Javaと同様)なんでもかんでも参照だと思っていま >> したが、 > >それで合ってると思います。 > >> これはどういう意味でしょう。変数への参照が取れないって >> ことかなあ。 > >参照への参照が取れないってことでしょうね。 > >> # でも「you *can't* pass "a reference" to an 『object』」 >> # だしなあ。 >> ## 私がPythonについて誤解しているようでしたらご指摘く >> ## ださいませ。 > >上の記事の著者である Tim Peters が言う "object" というの >は、松本さんの言う object と同じもの、すなわち我々の感じ >るところの「object への参照」のことなので、特に矛盾はな >いと思います。 > >Smalltalk や Ruby など、全ての型が object である言語で育 >つと、自然にこういう感覚になるのかもしれませんが、機械語 >による実装を見て意味を理解するタイプの人間からすると、 >ちょっとついていけない感じですね。 > >で、我々の感覚でいう「オブジェクトへの参照の値渡し (call >by object reference)」は、Tim Peters や松本さんのような >感覚を持つ人にとっては、 >実体渡し == "call by object" >となるわけです。 > >結局、以下の懸念は、まったく当たっており、注釈をつけたの >は正解だということになると思います。 > >> おっしゃるとおり、術語としてちゃんと定義されてな >> さそうなので、誤解を招く可能性があると思うのです >> が。そのために、先の投稿で注釈をつけたわけです。 > >同様に、 > >> 参照渡しを実体渡しと読んでいるのはその本(および >> その本に言及したWebページ)以外では、私は見たこと >> ないです。そんなの広く使われてるじゃん、という方 >> は情報よろしくお願いします。 > >についても、(少なくとも Python の世界では?) 広く使われている >と考えた方がいいのかもしれません。Tim Peters 氏は、Python の >世界では結構な有名人のようですし。 > >以下は余談です。 > >> >ただ、Java を含む多くの GC つき言語では、参照の値 >> >渡しをするわけで、この術語は使えませんね。 > >> ええと、少なくともJavaやCなら「値渡ししかない」で済み >> そうな気がするのですけど。 > >もちろんそうです。 > >ただ、C++ でオブジェクトを参照渡しすることと、まあだいた >い等価なことは、Java でも当然行なわれていることなわけで、 >C++ と Java に関する話をするときに、これを意味する術語が >欲しいように思います。 >で、これを "call by object" と呼びたくない派の人間として >は、"call by object reference" のように呼びたくなるわけ >です。 >もっとも google によると "call by object reference" の >用例は230件しかないそうなので、こういう欲求は、非常に >マイナーなのかもしれませんが。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!