Robert Klemme wrote:

>> Thoughts?  When do you use the 'yield' statement in code?
> More generally when you don't need direct access to the block given and 
> when you don't need to forward it to another method call.  I think yield 
> is faster than the block form also.

But note that you can also forward blocks without using the &block syntax:

irb(main):022:0> def five_times
irb(main):023:1>   5.times { |index| yield index }
irb(main):024:1> end
=> nil
irb(main):025:0> five_times { |i| puts "Hello ##{i}" }
Hello #0
Hello #1
Hello #2
Hello #3
Hello #4

I'd expect this to be slower than the &block syntax, but I have not 
benchmarked it. Maybe the &block syntax is also less clutter to look at 
and thus easier to understand.