新井です。

>>> From: Shugo Maeda <shugo / netlab.co.jp>
>>> Date: 31 Jan 1999 00:33:54 +0900
>>> Subject: [ruby-dev:4509] Re: permit to put a comma

> 前田です。

> > メソッドの引数追加と構造体のメンバ追加は、全然質が
> > 違うと思うんですよ。
> 
> だからこそ、Structのためだけにメソッドの引数の最後に
> ,を許すのに抵抗があるんです。
〜略〜
> そのStructのために他のメソッドにまで影響が出るような
> 文法変更をするというのは話が逆のように思います。

はぁ、なるほど。私の論点

   Structで必要 → メソッド呼び出しの構文変更

は、理由として弱いということですね。
でも、

   メソッド呼び出しの最後に","は不要

の理由が私には今ひとつです。将来の拡張の足かせにな
るかもしれないからという理由でしたら、納得しますけ
ど。そういうことですか?

> 実際僕は自分のプログラムでStructを使ったことはおそらく
> ないと思います。

私も、これまで使ったことなかったのですが、

#!/usr/local/bin/ruby

table = []

line = DATA.gets.chop
table_t = Struct.new("Table", *line.split)

while line = DATA.gets
  line.chop!
  table << table_t.new(*line.split)
end

p table

__END__
A	B	C
1	2	3
4	5	6
:	:	:

のように表の内容を取り込む需要があったので使用しま
した。ハッシュを使ってもよかったのですが、せっかく
構造体クラスが用意されているので使用して見ました。

  p table[0]["A"]
と書くよりは、
  p table[0].A
と書けたほうがいいですよね?

> > # 引数がArrayの場合
〜略〜
> > や、
> > 
> > # 引数がHashの場合
〜略〜
> こちらについては賛成です。

きっと「Structの問題はStructで解決」という点で賛成
していただいているのでしょうが、私は抵抗があります
(^^;なんでだろ?

「","を許すためだけに、インタフェースをもう1つ用意
する…うぅ、それよりは、Rubyの構文が","を許したほ
うがいいじゃん」

ってな考え方をしているのだと思います。私。

でも、

Hashで、初期値を持った構造体クラスを定義できる
→ だったら、Arrayも引数に許す
→ Arrayを使うことで、"," が許される

という論法にして自分を納得させることは出来ます。

> ただ、本当のところを言うと、配列やハッシュの要素の最後に,が
> 許されるという仕様も、個人的にはあまり好みではなかったりします。

なぜだろ?