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

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



沼口です.

 > 配列の次元に cyclic かどうかというのを定義したいというわけですか。

そういうことです.

 > リックな場合 nil でなくしたいと。 (サイクリックでないと a[-1] を
 > 使えなくしたいというのはちょっと...)

気持はわかるんですが,例として,1 次元 0..10 だとして
サイクリックじゃないとして,

  del[i]=(x[i+1]-x[i-1])/2.0

で,i=10 のときは x[ i+1 ] が nil になって,
i=0 のときは x[i-1] が nil にならない,
というのは不自然じゃありません?

なんか他にいい指定の仕方ないですかね.
MAX に十分大きい数(Bignumの最大数とか)を入れといて
x[MAX-1] でもいいですけど.
あるいは x[/1/] とか??

 > そんな感じもありですかね。"oned" の文字を見てでサブセット指定と
 > 分かるから、無理せず a.oned()でもいいのでは?

そうですね.とりあえずは.

 > ただ、この例に関して言うと、非サイクリックの場合端っこが含まれる
 > とエラー(nil) になりますね。

我々の用途としては,可能なかぎり nil に対する演算を再定義して, 
nil に対してどんな演算をしてもいいけれど(エラーにはならない),
結果は必ず nil というようにしといたほうがいいでしょう.

それとも,Ruby の nil と,我々の用途としての 
nil (undef あるいは NaN) は区別しておいたほうがいいでしょうかね?

-- 
沼口  敦@北海道大学大学院地球環境科学研究科 大気海洋圏環境科学専攻
tel:011-706-2365 fax:011-706-4865 〒060-0810 札幌市北区北10条西5丁目  
numa@xxxxxx