Symbol#to_proc

これはいいな。すごいな。

irb(main):001:0> class Symbol; def to_proc; Proc.new{|obj,*args| obj.send(self,*args)}; end; end
irb(main):002:0> require 'bigdecimal'
irb(main):003:0> require 'bigdecimal/util'
irb(main):004:0> [0.5,0.25,0.125].map(&:to_d)
=> [#<BigDecimal:b7e516d8,'0.5E0',4(8)>, #<BigDecimal:b7e51674,'0.25E0',4(8)>, #<BigDecimal:b7e51598,'0.125E0',4(8)>]
irb(main):006:0> [0.5,0.25,0.125].map(&:to_d).map(&:to_r)
=> [Rational(1, 2), Rational(1, 4), Rational(1, 8)]
irb(main):007:0> require 'mathn'
irb(main):008:0> [0.5,0.25,0.125].map(&:to_d).map(&:to_r).map(&:inspect)
=> ["1/2", "1/4", "1/8"]
irb(main):009:0> ["foo","","bar"].any?(&:empty?)
=> true
irb(main):010:0> ["foo","","bar"].reject(&:empty?)
=> ["foo", "bar"]
irb(main):011:0> ["foo","","bar"].reject(&:empty?).any?(&:empty?)
=> false
irb(main):012:0> [["foo",2],["bar",3]].map(&:*)
=> ["foofoo", "barbarbar"]
irb(main):013:0> {"foo"=>2, "bar"=>3}.map(&:*)
=> ["foofoo", "barbarbar"]

楽しいな。