[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:000087] Re: gtrb & multi-D array
堀之内です。
>> > リックな場合 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 にならない,
>> というのは不自然じゃありません?
確かにそうです。何を優先するかという問題ですね。
負のインデックスが使えると、配列が前からも後ろからも対等にアクセ
スできるのが嬉しい。一方、差分を取ったりということから考えると、
i=0 で x[i-1] が nil 等にならないとバグの温床になるかもしれない。
私としては、前者を重視して負のインッデクスが欲しいに一票。また、
rubyに組込みの配列クラス Array の負のインッデクス解釈と同じにな
るので、変えない方がユーザーの混乱が減るし、すっきりするとも思い
ます。
>> 我々の用途としては,可能なかぎり nil に対する演算を再定義して,
>> nil に対してどんな演算をしてもいいけれど(エラーにはならない),
>> 結果は必ず nil というようにしといたほうがいいでしょう.
場合によっては、変な救済策をせずエラーにさせるのがバグを避けるた
めにもいいのでは。具体的な問題に即して考ることにしましょう。
>> それとも,Ruby の nil と,我々の用途としての
>> nil (undef あるいは NaN) は区別しておいたほうがいいでしょうかね?
それって、配列インデックスがいけない値だったら nil でなく、別の
を返すとかですか? 本当に必要でない限り避けたい様な気がします。
堀之内 武 horinout@xxxxxx
京都大学超高層電波研究センター 611-0011 宇治市五ヶ庄
phone:0774-38-3812 fax:0774-31-8463