From: Shin-ichiro HARA Date: 2001-06-14T10:46:24+09:00 Subject: [ruby-dev:13583] Re: Parallel Assignment 原です。 >まつもと ゆきひろです >|(2)1.6.4 で *a = [] #=> a == [[]] となってしまっているのは、単なる >|バグで、正しくは a == [] です。 > >えーと、1.6.4でもa == []だと思います。 失礼!バグの指摘にミスがあるという、やってはいけないややこしいことをやって しまった。 正しくは (2)1.6.4 で a = *[[]] #=> a == [[]] となってしまっているのは、単なる バグで、正しくは a == [] です。 です。これがそもそもの話の発端に関わっていることでしたね。 | さらに、右辺式が「式1 `,' `*' 式2」という形で | 配列に変換した式2 の値が [] の場合、 >| 式1 の値自体が右辺の値となるのではなく、式1, nil が >| 右辺の値となります。 >| >|というところでしょうか。 > > [式1]が右辺の値になります。 あれ、正解は [式1, nil]が右辺の値になります。 かな? 現在検討中? >|(4)次の主張は正しいとしてFIXしませんか? >| >| すべての(多重代入を含む)代入 >| >| A = B >| >| は、ただ一つの変数xをもって、 >| >| x = B >| A = x >| >| と書ける。 > >同意します。あ、ただ前田案が台頭してくればまた話は違うでしょ >うが。 前田案が優勢になれば、そっちにするりと乗り換えることにして、それ まで無視します。:-) 昔は、一つの変数xに対して x = 1, 2 という構文は許されて無かったですよね。いつから出来るようになった んでしょう。 しかし、このモデルがOKだとすると、今回の[ruby-dev:13503]の仕 様は、かなりシンプルであると言っていいと思います。 まだ詰めるべき点がいくつかあるわけですが。