knuです。ruby-listから舞台を移しました。

At Mon, 10 Jan 2000 02:34:08 +0900,
Yukihiro Matsumoto <matz / netlab.co.jp> wrote:
> In message "[ruby-list:20094] Re: Range expansion?"
>     on 00/01/07, Yukihiro Matsumoto <matz / netlab.co.jp> writes:
> 
> || メソッドへのパラメータの引渡しとは一致しないのですね。
> |
> |Proc#call はブロックの方から進化してきて、相当メソッドに似て
> |きましたが、まだちょっと違うところが残ってるんですね。でも、
> |ブロックを使いつつこれ以上メソッドのパラメータ渡しと一致させ
> |る方法が思い付きません。
> |
> |アイディアがあれば教えてください。
> 
> 多重代入のルールを変更するとちょっとましになる方法がありそう
> です。続きはruby-dev でやりましょう。

 おお。期待しています。私はまだRubyの引数渡しや多重代入あたりの
内部実装を読み解けていないため、アイディアが出ませんでした。

 そのあたりを理解してしまえば、

At Thu, 6 Jan 2000 15:59:13 +0900,
Akinori MUSHA aka knu <knu / idaemons.org> wrote:
> 	knu@archon[2]% ruby -v                                                      [~]
> 	ruby 1.4.3 (1999-12-08) [i386-freebsd3.4]
> 
> 	knu@archon[2]% ruby -e 'a = "a b c d".split; p a; a[*[1,2]] = []; p a'
> 	["a", "b", "c", "d"]
> 	["a", 2, "c", "d"]
> 
> というのはどういうことでしょうか。(あとで自分でも見てみます)

も自分で原因を突き止めて修正できるんですが。。

# とりあえず、引数を渡すスタックが一つずれて a[1] = 2 が実行されて
# しまうことは分かります。array.c#rb_ary_aset()をトレースすると
# 引数は二個しか来ていないみたいだし。。

-- 
                     /
                    /__  __
                   / )  )  ) )  /  http://www.idaemons.org/knu/
Akinori MUSHA aka / (_ /  ( (__(   mailto:knu / idaemons.org

"We are but hungry..  Associated Ita-meshi Daemons!"
                                   http://www.idaemons.org/