From: "NAKAMURA, Hiroshi" Date: 1999-04-06T21:17:16+09:00 Subject: [ruby-list:13365] Re: Ruby and LISP ( was Re: Ruby anywhere ) なひです. > From: Shugo Maeda [mailto:shugo@netlab.co.jp] > Sent: Tuesday, April 06, 1999 6:11 PM > おそらく「変数はすべてreference」とおっしゃりたかったのではないでしょ > うか。 > 参照渡しというと、 > > def foo(n) > n = 1 > end > x = 0 > foo(x) > p x > > が1を表示する、というような誤解が生まれてしまいそうですよね。 確かにそうですね.すいません.call-by-referenceはウソです.m(..m うーん,混乱してきた. 上記の例だとちょっと都合が悪いので,^^; def foo( n ) n = [] end x = [1] foo( x ) p x だとすると,C++風に書いたときの n.operator=( [] ) はxに作用できない.んでfooを def foo( n ) n.clear end とかすると,これはxに作用できる. これは単にoperator=()だと解釈するのが変なのかもしれませんね. call-by-valueだreferenceだ言うより,「=」という代入の, (JavaやRubyらしい)特徴なんでしょうか...