RubyでRangeオブジェクトAとBがあったときに、A と B の論理積ってとる方法ないかな?1..3 と 2..4 で 2..3 がとれるみたいな。
2015-12-11 08:52:12@igaiga555 とりあえず計算効率度外視すると A.to_a & B.to_a とかですかね??
2015-12-11 08:57:22@a_matsuda undefined method `&' for Range なんですよね… なんか&を定義できない理由があるのかな..
2015-12-11 09:11:03@unak @igaiga555 @n0kada Array#&は空配列返すので、ちょっと気持ち悪いですね。返り値に&.使えばあまり困らない気もしつつ
2015-12-11 16:27:35@unak @igaiga555 @n0kada Array#&は空配列返すので、ちょっと気持ち悪いですね。返り値に&.使えばあまり困らない気もしつつ
2015-12-11 16:27:35@shugomaeda @igaiga555 @unak class Range; def &(r)[begin, r.begin].max..[end, r.end].min;end;end
2015-12-11 16:30:36@unak @shugomaeda @n0kada @igaiga555 range の演算を導入するなら null range は必要
2015-12-11 16:33:09@unak @shugomaeda @n0kada @igaiga555 range の演算を導入するなら null range は必要
2015-12-11 16:33:09@igaiga555 ruby -e 'class Range; def &(other); other.first..last end; end; p((1..10) & (5..20)); p((1..10) & (11..20))' 重ならない時がキモいっすねw
2015-12-11 16:34:42@igaiga555 ruby -e 'class Range; def &(other); other.first..last end; end; p((1..10) & (5..20)); p((1..10) & (11..20))' 重ならない時がキモいっすねw
2015-12-11 16:34:42