include?を考える

Havel, Hakimiの定理をRubyでしたとき,渡された配列の中に負の数があるとfalseが返るように

return false if list.select{|e| e < 0}.size > 0

という処理を組み込んだのだけども,これ単純に「負の数が含まれてたらtrueを返す」みたいな,それこそselectのようにブロックを渡すみたいなノリのことを,include?で出来ないのかなとリファレンスを見るも,そんな挙動はしないようで少しガッカリ.
ちょっと説明が難しいので簡単にコードで表すと,

arr = [-2,-1,0,1,2]
p arr.include?{|e| e < 0}
=> true

こんな感じの処理がしたいと思ったのですよ.で,考えてみたのはこんな感じ.イテレータでぐるぐる.

class Array
  def include_with_block
    each do |e|
      return true if yield(e)
    end
    return false
  end
end

実行して見ると,まぁ要求通りの挙動.

list = [1,2,3]
p list.include_with_block{|e| e < 0}
=> false

list = [1,-3,0]
p list.include_with_block{|e| e < 0}
=> true


折角だから,中でselectを呼びたいな.

class Array
  def include_with_block
    select{|e| yield(e)}.size > 0
  end
end

満足.結果は割愛.ただinclude_with_blockという名前が何とも間抜け.自分のネーミングセンスの無さに脱帽.