> ...so, what do you guys think? Are they equivalent? Is there > a performance difference? Are they even doing what I think > they're doing? They are not equivalent. Version A has to convert a block into a Proc, which slows it down. Version B uses two calls instead of just one, which slows it down. Which one wins? See below. The difference in speed is significant. gegroet, Erik V. - http://www.erikveen.dds.nl/ ---------------------------------------------------------------- $ cat test.rb require "ev/ruby" module A def self.foo yield end def self.bar(&lambda) foo &lambda end end module B def self.foo yield end def self.bar foo { yield } end end def test(mod) bm mod do 100_000.times do mod.bar { :OK } end end end 10.times do test(A) test(B) end $ ruby test.rb CPU ELAPSED COUNT CPU/COUNT LABEL 18.926000 18.995000 10 1.892600 A 2.264000 2.265000 10 0.226400 B ----------------------------------------------------------------