From: Tanaka Akira Date: 2003-01-03T04:01:50+09:00 Subject: [ruby-dev:19294] Re: ruby-1.8.0 / yield(nil)とyield()のちがい In article <1041521460.248415.5532.nullmailer@picachu.netlab.jp>, matz@ruby-lang.org (Yukihiro Matsumoto) writes: > これだとcgi.rbを使っているプログラムが全滅するので a, = [1] > は a = 1 でなければなりません。 まぁ、互換性を考慮してない案なので。 > ちゅーわけで、こんな感じかなあ。まだ、検証中ですが。 しばらく眺めて考えてみたのですが、 (私が例から帰納的に推測した規則が正しければ) *a = x y = *a は y = x と同じになりそうですね。 また、多重代入の右辺から左辺に伝わる情報を保持する形式が avalue だとい うのは納得しました。この形式なら yield と yield nil を区別できるのもわ かります。 mlhs に分解するところは、avalue を普通の値(y = *a としたときの y)に変 換してからそれを配列として分解する、と想像しました。 わかんないのは、Proc#call, Proc#yield の引数および *a な avalue 直結以 外の mrhs から avalue への変換ですかね。 -- [田中 哲][たなか あきら][Tanaka Akira]