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

> |  そうならないように, 最初「数値定数は」と書いたものを「数値は」と書き
> |  換えたんですが. ようするに immutable object は評価すると必ずコピーを
> |  返す.
> 
> 似た例としては現在の文字列定数がありますが,これはリテラルを
> 評価すると毎回新しいコピーを作りますが,代入のタイミングでは
> コピーを作りません.「代入は参照の変更に過ぎない」ってのは
> Rubyの言語モデルのかなり基本的な部分なんですが,ここを変更す
> るのはかなり大胆な変更ですよね.

  前に言った時には実は, 「オブジェクトの参照をとる動作は immutable
  object の場合自分自身の複製の参照を返す」と言っていたんですよね. 今
  回の「評価すると」も実体は同じで考えてました.

  ....なにかこのモデルでも変な所があったような気もするんですが, それが
  何だったのかは忘れました.... 実は i += 1 を i++ と書けるだけで満足と
  いうはなはだ志が低い考えなもので, このモデルで特に問題は無いように見
  える.

  # immutable なんだから, 代入される参照は複製のものでもオリジナルのも
  # のでもどちらでも構わない. ちなみに immutable object は並列化する場
  # 合各ノードにコピーをおくことで, プログラムの高速化が図れる (^^;

> いや,モデルとしては(若干の例外がありますが),矛盾しないんで
> す.実装の全面変更になるんで怠け者の実装者(私のことだ)の熱
> 意が下がるだけで.^^;;;

  モデル/意味論的にこのような事を考えておいて, 実装は単に ++ を付け足
  すだけ, という事を考えてました.

  # これなら熱意も下がらない?

===========================================================================
  柳川 @ 情報システム学研究科 . 電気通信大学
  katze / yuba.is.uec.ac.jp                             February 5th, 1998.  
# ♪ 小さな魔女がお買いもの 橋を渡って海の果て