[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7528] Re: scope

From: Shin-ichiro Hara <sinara@...>
Date: 1998-04-15 16:20:52 UTC
List: ruby-list #7528
原です。

まだ若干の混乱があるかもしれないです。

> def test(a)
>   p a.id  # --> 3
>   a += 1
>   p a.id  # --> 5
> end
> 
> a = 1
> p a.id    # --> 3
> test(a)

このコードではどこでも破壊的な操作は行われていないですよね。
a += 1 は、a の指すオブジェクトへ +1 といメッセージを送った
応答であるオブジェクトを a が指す様に仕向けている、いわば代
入文です。

「コピー」という言葉もここでは不適切では?オブジェクトのコ
ピーは起こってないですよね。それから変数のコピーって無いで
す。(alias はともかくとして。)ピンで止めた書類をコピーす
ることはあるけど、ピンをコピーすることはめったにない。

参照のコピーっていうのはあるだろうけど。ruby では単に代入の
事ですね。

ここで余計なことを言うと「変数 a に破壊的操作を施す」という
言い回しは実は間違いで、正しくは「変数 a が指し示すオブジェ
クトに破壊的操作を施す」が正しいです。前者を後者の省略形の言
い回しと言えば言えますが。このメーリングリストを「破壊的」で
検索すると、私の誤解に基づく発言が山のように出てくるはず。(^^;

さらに蛇足ですが、a.id は a の id ではなく、a の指し示すオブ
ジェクトの id です。当たり前ですけど。そもそもメソッドという
のが、変数に対してなされるのではなく、変数の指し示すオブジェ
クトに対してなされるのだから。

> スレッドを使っていると、このタイミングが問題になるんですよね。それでちょ
> っと悩んでいたのです。

というわけで、常に変数の指し示すオブジェクトの事を意識してい
れば、多分今回のケースでスレッドがらみのタイミングは問題にな
らないのではないでしょうか。(本当に必要なときは synchronize
などを使うのでしょうが。)

ちなみに Array, Hash の組み込みの破壊的メソッドは、複数スレッ
ドが走っていても排他的に実行されるはずです。(本当?)

> このコピーのタイミングについては今後、どのようになるでしょうか?
> 現在のまま、参照のみの場合はリファレンスとして使えると思って使ってしまっ
> ても良いでしょうか?

青山さんはここでは「参照」を「破壊的でない」あるいは、「書込み
不可で読み出しのみ可」という意味で使ってるのかな。私は「参照」
を「リファレンス」と全く同じ意味で使っています。いずれにして
もまだ誤解があるような、、、。


そういえば、a = 1 とか a = "b" というのを代入文と言うけど、
これがまぎらわしいんだな。オブジェクトを代入するような気分
になる。代入するのはオブジェクトへの参照なんだけど、参照な
んて抽象的なものを代入するというのも、難しいと言えば難しい。
オブジェクトの先頭アドレスを代入しているのだとCの人は何ら
不思議に思わないでしょうけど。そもそも ruby では、「参照」
という言葉無しで話は済むはずですよね。参照という言葉を抹殺
した後、いよいよ「代入文で代入されるは何なの?」ということ
になるに違いない。

ruby の代入文を「指示文」と呼んだらどうでしょう。でも、
a = b とは、b の指し示すモノを a も指し示すよう指示してい
るわけで、2重に「指示」という言葉が出てくる所がややこしい
か。「イコール文」というそのまんまの用語はどうかな。みもふ
たも無いって感じ。:-)

In This Thread