[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:000064] Re: gtrb & multi-D array
沼口です.
> ということです。たぶん数列と範囲を表現するクラスがそれぞれあった方がよ
> いと思いますがどうでしょう、一般的すぎる??
それぞれを別に設ける方がいいのかどうかは,ちょっと要検討ですね.
いずれにせよ, データの添字やデータの値に使う値の集合のクラスは
きちんと作っておいたほうがよくて,少なくとも,
最大値,最小値,間隔による指定
値の集合による指定
サイクリックかどうかのオプション
順序のオプション
あたりは持っておいたほうがよいということですね.
堀之内君の悩みは,ただ,それを実際どう表すかというとで,
特にインタラクティブな処理をやりたいときに,
(添字向けの上のようなクラスを IRange として)
a[IRange.new(1..2),IRange.new(0..1,2),IRange.new(5)]
などとやるのは絶対避けたいし,これを
a[1..2, 0..1,2, 5]
とは書いたら一意に解釈できないし,
a[1..2, [0..1,2], 5] とか a[1..2, {0..1,2}, 5]
とかいうのもできれば避けたい.
a[1..2, 0..1..2, 5] とか
a[1..2, 0..1:2, 5] とか 書けるといいな,
ということだと思うのです.
インタラクティブな処理ではタイプを減らしたいのと,
間隔指定がある場合とない場合とで指定の仕方が違うのは面倒,ということで.
つまり上の例だと, " a[1..2, 0..1 " まで書いたところで,おっと,
間隔を指定するんだったら前にカッコを入れなきゃいけない,
とカーソルを戻さなければいけないところがいまひとつ使いにくそう.
a[1..2, 0..1=>2, 5] とか 書ければまだいいのですが,
パーサエラーになってしまいますよね.
a[1..2, 5, 0..1=>2] なら通るのだけど.
つまりパーサレベルの話で悩んでいるわけで,なにかうまくだます方法
ないですか,ということなのですが.何かいい方法ありませんかね.
--
沼口 敦@北海道大学大学院地球環境科学研究科 大気海洋圏環境科学専攻
tel:011-706-2365 fax:011-706-4865 〒060-0810 札幌市北区北10条西5丁目
numa@xxxxxx