[#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:7527] Re: scope

From: keiju@... (石塚圭樹 )
Date: 1998-04-15 15:32:40 UTC
List: ruby-list #7527
けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :7516 ] the message: "[ruby-list:7516] Re: scope ", on
Apr/15 22:04(JST) Wakou Aoyama writes:

>青山です。

>>(4)Fixnum に破壊的なメソッドは用意されていない。
>
>ああ、なるほど。
>
>def test(a)
>  p a.id  # --> 3
>  a += 1
>  p a.id  # --> 5
>end
>
>a = 1
>p a.id    # --> 3
>test(a)
>
>どこでコピーが行われているのかと思ったら、破壊的な事を行った時点で行わ
>れていたのか。そうすると、参照しているだけの場合は他と同じくリファレン
>スとして使えますね。便利ですが、注意も必要そう。

>スレッドを使っていると、このタイミングが問題になるんですよね。それでちょ
>っと悩んでいたのです。
>
>このコピーのタイミングについては今後、どのようになるでしょうか?
>現在のまま、参照のみの場合はリファレンスとして使えると思って使ってしまっ
>ても良いでしょうか?

?? 何かまだ勘違いしているような...

rubyではコピーとかそういうことは起こっていませんよ.

変数にオブジェクトを代入すると, その時点でその変数からオブジェクトが参
照可能になります(これを束縛と呼ぶことにしましょう). 束縛は, 変数からオ
ブジェクトが参照可能になるだけで, 変数という入れ物の中にオブジェクトが
コピーされてはいっているわけではありません.

  a = 1

は変数aにオブジェクト1が束縛されます.

test(a)を実行して, def test(a)を呼び出すと別のスコープの別の変数a'に変
数aに束縛されていたオブジェクト1がa'に束縛されます.

で,

  a += 1

では, a = a + 1と同じですが, オブジェクト1とオブジェクト1のたした結果, 
別のオブジェクト2が返され, それが, また変数aに束縛されています.

rubyの代入が変だと思っている人も多い見たいですが, lispやsmalltalkはこ
のタイプです. rubyは(smalltalkも)代入という言葉を使っていますが, lisp
では束縛と読んでいたものと同じものです. 元々違う概念である束縛を代入と
呼んでいるので, 普通の手続き型言語での代入と同じものだと勘違いしてしま
うんですよね... 束縛というよりは代入といった方が親近感がわくことも確か
なんですが...

代入と束縛は, 確かに似ていることも確かで, C++のポインタとリファレンス
を他して2で割ったようなものですね. 変数そのものはポインタなのだけども, 
変数を参照するとポインタのデリファレンス(つまりリファレンス)を返すって
感じ.

  Object *var;
  Object *obj1;
  Object *obj2;

  var = &       *obj1         + *obj2
  <-ここが代入-><-ここが参照->

# 返って分かりづらいか...
__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju@rational.com <<---

In This Thread