[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000065] Re: gtrb & multi-D array



ごとけんです

In message "[dennou-ruby:000064] Re: gtrb & multi-D array"
    on 99/09/03, Numaguti Atusi <numa@xxxxxx> writes:
>   a[1..2, 0..1=>2, 5]  とか 書ければまだいいのですが,
>   パーサエラーになってしまいますよね.
>   a[1..2, 5, 0..1=>2]  なら通るのだけど.
>
>つまりパーサレベルの話で悩んでいるわけで,なにかうまくだます方法
>ないですか,ということなのですが.何かいい方法ありませんかね.

あ、そうでした。
伝統的(?)には Array か Hash ですが、たとえばトリッキーなのだと、

a[1..2, 0.1,2, 4, 5]

つまりFloatがでたら、それは整数部と小数部がそれぞれハジメとオワリで、
その次の整数はナニと解釈。うーんエンバグしそう…

別な手としては文字列か正規表現を渡す。

a[1..2, '0..1 : 2', 4, 5]
a[1..2, /0..1 : 2/, 4. 5]

これもやっぱり…

まぁやはり作戦としては、とりあえず Array か Hash で妥協して、それを
Sequence なりに変換する。んで一方で、今の文法とかぶらないように文法を
違法改造して、この文法を認めてくれと本家に迫る、あたりかも知れません。
しかし、この場合Ruby的な思考方法として考えないといけないのは単に構文糖
ではなくてリーズナブルなクラスとそれに対するリテラルでしょうからをクラ
スはともかくリテラルの方は本家で認められるほどよさげなものを考え出すの
は結構難しいかなとは思います。

-- gotoken