In message <199802040803.RAA24375 / picachu.netlab.co.jp>
matz / netlab.co.jp (Yukihiro Matsumoto) writes:

> |  ....で, `1' とかの数値は実は評価すると 1 という数値のインスタンスを
> |  生成するもので, 1.succ! としても `1' は `1' ....っていうのも言いまし
> |  たけど, だめでしょうか?
> 
> おっしゃることはわかります.が,Rubyの場合,それは
> 
>   pi = Math::PI
>   pi2 = pi
>   pi++
> 
> で,pi == pi2 == Math::PI == 4.141592 になるようなモデルを意
> 味するような気がするんですけど.違いますか? それはそれで使
> いにくそう.

  そうならないように, 最初「数値定数は」と書いたものを「数値は」と書き
  換えたんですが. ようするに immutable object は評価すると必ずコピーを
  返す.

  # ちなみに実数の succ というのはもともと自然に定義できないから考えて
  # いなかった. いや, 便宜的に「定義」はできるけど.

  ....ところで数値以外の immutable object って, なんかありましたっけ?

> もうひとつ,Fixnumは即値である,という理由もあります.

  まえは「Fixnum が即値である事と, モデルとしてこんな事を考えるのは別
  に矛盾しない」と言っていたのに (^^?

  # 別スレッドの話ですけど, i++ と i += 1 でコストが 5 倍違っていたら, 
  # プログラム全体では結構な違いになりそうですが....と思ったら, 987 行
  # のスクリプト中に 15 しかなかった....

===========================================================================
  柳川 @ 情報システム学研究科 . 電気通信大学
  katze / yuba.is.uec.ac.jp                             February 5th, 1998.  
# He knows most who speaks least.