2012-05-05から1日間の記事一覧

Proc に2項演算子を定義してみた

class Proc %w[ + - * / ** % | & ^ > < >= <= == <=> >> << =~ != !~ ].map{|i| i.to_sym }.each do |op| define_method(op) do |rhs| apply_binary(rhs,&op) end end private def apply_binary rhs raise "block is needed" unless block_given? Proc.new{…

Proc#=== の使い道

Proc オブジェクトの呼び出し方法はいくつかあります proc = Proc.new{|i,j| i*j} proc.call(2,3) #=> 6 proc.(2,3) #=> 6 proc[2,3] #=> 6 proc === [2,3] #=> 6 が,一番最後のはどこで使うんだろうと思っていたんですが,case when では === を用いて比較…