[#8168] {literal}#[]= — EGUCHI Osamu <eguchi@...>

えぐち@エスアンドイーです。

16 messages 1999/11/01
[#8172] Re: {literal}#[]= — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8176] Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

35 messages 1999/11/01
[#8178] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8212] Re: Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/02

もりきゅうです。

[#8213] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/03

まつもと ゆきひろです

[#8232] 例外を処理する 2 項演算子 — Kazunori NISHI <kazunori@...> 1999/11/05

西@九大です。

[#8233] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/05

まつもと ゆきひろです

[#8236] Re: 例外を処理する 2 項演算子 — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/05

もりきゅうです。

[#8266] Re: 例外を処理する 2 項演算子 — EGUCHI Osamu <eguchi@...> 1999/11/07

えぐち@エスアンドイー です。

[#8269] Re: 例外を処理する 2 項演算子 — gotoken@... (GOTO Kentaro) 1999/11/07

In message "[ruby-dev:8266] Re: 例外を処理する 2 項演算子"

[#8271] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/08

まつもと ゆきひろです

[#8274] Re: 例外を処理する 2 項演算子 — keiju@... (石塚圭樹) 1999/11/08

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

[#8204] Re: [ruby-list:18281] Re: アクセス制御について — Shugo Maeda <shugo@...>

前田です。

12 messages 1999/11/02
[#8205] Re: [ruby-list:18281] Re: アクセス制御について — Shin-ichiro Hara <sinara@...> 1999/11/02

原です。

[#8315] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/15
[#8316] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/15

まつもと ゆきひろです

[#8369] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/18

新井です。

[#8374] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/18

まつもと ゆきひろです

[#8384] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/19

新井です。

[#8405] 1.4.3 (Re: Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{}) — matz@... (Yukihiro Matsumoto) 1999/11/24

[#8319] Re: Exception handling — Jun Adachi <adachi@...>

安達@沖データと申します。

21 messages 1999/11/16
[#8350] Re: Exception handling — Kazunori NISHI <kazunori@...> 1999/11/17

西@九大です。

[#8446] [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/29
[#8449] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/11/30

まつもと ゆきひろです

[#8463] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/11/30

西@九大です。

[#8474] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/01

まつもと ゆきひろです

[#8476] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/01

西@九大です。

[#8487] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/02

まつもと ゆきひろです

[#8494] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/02

西@九大です。

[#8451] new Hash (Re: [ruby-list:19043]) — Wakou Aoyama <wakou@...>

青山です。

18 messages 1999/11/30

[ruby-dev:8189] Re: {literal}#[]=

From: EGUCHI Osamu <eguchi@...>
Date: 1999-11-01 08:57:41 UTC
List: ruby-dev #8189
えぐち@エスアンドイー です。

>>> In message [ruby-dev:8185] Re: {literal}#[]=
    On Mon, 1 Nov 1999 17:02:07 +0900, matz@netlab.co.jp (Yukihiro Matsumoto) said:

matz> まつもと ゆきひろです
matz> 
matz> 
matz> In message "[ruby-dev:8183] Re: {literal}#[]="
matz>     on 99/11/01, EGUCHI Osamu <eguchi@cagiva.shizuokanet.ne.jp> writes:

matz> |ここで良く分からないのが、
matz> |
matz> | + なぜ数だけが immutable か?
matz> |
matz> |と言う点で、実装が内部的には Fixnum#dup 相当
matz> |になってい事を隠蔽する意図ででしょうか?
matz> |
matz> |  a = b = 4
matz> |  a[1] = 1
matz> |  p [a, b]
matz> | => [5, 5]
matz> |
matz> |と Ruby 的には本来なるはずだと言う理解であっていますか?
matz> |#もし Fixnum が mutable だとして。
matz> 
matz> そうです。もし仮にこれができたとすると、それ以降のRubyスクリ
matz> プトでは4が登場すべき局面で実際には5が現れるわけですよね。な
matz> んかすごくイヤじゃありません?

かなりイヤですね。
ただ全部の 4 が 5 に化けるというか、
b の様な aliasing が起こるとこだけだと思います。
# イヤ度はおなじですが。

matz> あるいは「この4だけが5になる」という実装も可能でしょうが、そ
matz> れは非常に大きなパフォーマンスペナルティの源なので、避けたい
matz> です。BignumやFloatではそのようなことが実装上可能ですが、将
matz> 来変更しないとは限らないので、そのような実装を強制するような
matz> 仕様を採用したくありません。

ペナルティって代入のタイミングで生じる dup の事ですか?

matz> |Array#[]= は「指してる先」(である Array の)参照関係を
matz> |変化させているようにも考えれれますが、、私の眼(マナコ)が曇っているだけ?
matz> 
matz> 指してる先のオブジェクトの内容が変化するのは大丈夫なのです。
matz> 指してる先を変えることができないんです。

「(メソッドからは)指してる先を変えることができない」
って今はじめて知覚しました。
#う゛、眼(マナコ)曇ってたです。

matz> |  結局、『 ++ 演算子の議論』の変種って事ですね。
matz> 
matz> そういうことですね。Array#replaceはメソッドで実現できるが、
matz> 代入はメソッドで実現できないということです。

代入がメソッドでないってそういう意味だったんですね。

	えぐち

In This Thread