まつもと ゆきひろです.

In message "[ruby-list:2121] bug? array in *array"
    on 97/02/13, Keiju ISHITSUKA <keiju / shljapan.co.jp> writes:
|
|けいじゅ@SHLジャパンです. 
|
|これはバグというべきか仕様なのかわかりませんが, 一応気づいたので報告し
|ます.

一応は仕様なんですけど,話し合うべき余地はありそうですね.

現在,*をつけることができるのは

  (1) 多重代入の右辺
  (2) 引数リスト(定義側)
  (3) 引数リスト(呼び出し側)

の末尾だけです.1,2と3ではちょっと意味が違いますね.さて,配
列定義式は3に対応する形式であるということで採用しても良いよ
うな玖珂しますが,実は問題があります.

それは,引数リストと配列式では(確かに似ているが)いろいろと微
妙な違いがあることです.ちょっとあげてみると

  * 引数リストには連想配列式を直接書ける

    foo("1"=>"2", "2"=>"4")

  * 引数リストは(最後の式ならば)括弧なしのメソッド呼び出しが
    書ける

    print(foobar $baz)

  * 配列式の末尾には空のコンマが置ける(実は連想配列も)

    [a,b,c,]
    {"1"=>"2", "2"=>"4",}

くらいでしょうか.結構違いますね.今回決めなければならないの
は

  * どの程度引数リストと配列式の形式を合わせるか
  * 末尾のコンマをどうするか

についてでしょうね.
                                まつもと ゆきひろ /:|)