10周年のSPコンテンツ!
0
igaiga @igaiga555
RubyでRangeオブジェクトAとBがあったときに、A と B の論理積ってとる方法ないかな?1..3 と 2..4 で 2..3 がとれるみたいな。
モヒお ⛅️ AWS Loft Tokyo @akitsukada
@igaiga555 とりあえず計算効率度外視すると A.to_a & B.to_a とかですかね??
igaiga @igaiga555
@a_matsuda undefined method `&' for Range なんですよね… なんか&を定義できない理由があるのかな..
Shugo Maeda @shugomaeda
@igaiga555 @n0kada 範囲が重ならないときに何を返すか悩ましいような
Shugo Maeda @shugomaeda
@igaiga555 @n0kada 範囲が重ならないときに何を返すか悩ましいような
usa @unak
@shugomaeda @igaiga555 @n0kada 空のRangeオブジェクト……はないので、nil ですかねえ?
Shugo Maeda @shugomaeda
@unak @igaiga555 @n0kada Array#&は空配列返すので、ちょっと気持ち悪いですね。返り値に&.使えばあまり困らない気もしつつ
Shugo Maeda @shugomaeda
@unak @igaiga555 @n0kada Array#&は空配列返すので、ちょっと気持ち悪いですね。返り値に&.使えばあまり困らない気もしつつ
usa @unak
@shugomaeda @n0kada @igaiga555 ちゃんと空の範囲オブジェクトというものを導入すべきですよ、やはり。
( Φ _⊞) @n0kada
@shugomaeda @igaiga555 @unak class Range; def &(r)[begin, r.begin].max..[end, r.end].min;end;end
Shugo Maeda @shugomaeda
@unak @n0kada @igaiga555 そもそも空の範囲って何なんですかね
Shugo Maeda @shugomaeda
@unak @n0kada @igaiga555 そもそも空の範囲って何なんですかね
みょうが @mrkn
@unak @shugomaeda @n0kada @igaiga555 range の演算を導入するなら null range は必要
みょうが @mrkn
@unak @shugomaeda @n0kada @igaiga555 range の演算を導入するなら null range は必要
yancya @yancya
@igaiga555 ruby -e 'class Range; def &(other); other.first..last end; end; p((1..10) & (5..20)); p((1..10) & (11..20))' 重ならない時がキモいっすねw
yancya @yancya
@igaiga555 ruby -e 'class Range; def &(other); other.first..last end; end; p((1..10) & (5..20)); p((1..10) & (11..20))' 重ならない時がキモいっすねw
usa @unak
・nilでいいじゃん派 ・空範囲オブジェクトを用意すべき派 ・重なってない、テキトーな範囲オブジェクトに見えるものを返せばいいじゃん派
usa @unak
3つ目を選ぶくらいならnilを選ぶわ。
斎藤ただし, Tadashi Saito @_tad_
空の範囲オブジェクト? `()` ですよね? > 評価するとnil <
残りを読む(18)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする