From: Gavin Kistner Date: 2005-09-13T22:19:07+09:00 Subject: Re: BEGIN and END vs. blocks On Sep 13, 2005, at 5:06 AM, Chris Game wrote: > So where does precedence come in? foo goo { 'bar' } foo goo do 'bar' end The first is the same as: foo( goo(){ 'bar' } ) foo( goo do 'bar' end ) The second is the same as: foo( goo ){ 'bar' } foo( goo ) do 'bar' end def foo( *args ) puts "foo args: #{args}" puts "foo block result: #{yield}" if block_given? "foo return value" end def goo( *args ) puts "goo args: #{args}" puts "goo block result: #{yield}" if block_given? "goo return value" end foo goo { 'bar' } puts '-' * 40 foo goo do 'bar' end #=> goo args: #=> goo block result: bar #=> foo args: goo return value #=> ---------------------------------------- #=> goo args: #=> foo args: goo return value #=> foo block result: bar