Hi,

On Fri, Feb 29, 2008 at 2:33 AM, Sebastian Hungerecker
<sepp2k / googlemail.com> wrote:
>  Blocks return the value of the last expression in them (or, if you break from
>  the block, they return the value given to break, the same way return works
>  for methods). What the yielding method does with that return value depends,
>  as you say, on the method, but you can't say that blocks don't return
>  anything.

Yes, you're right - I guess what I was trying to say is that you can't
have some `return n' or `break n' and *always* expect the return value
(of the expression including the block) will be `n' - it'll be
interpreted by the the actual function that takes the block first (or
in the case of return, break out of the function).

>> def some_case
>>   a = yield * 2
>>   a + 5
>> end
=> nil
>> some_case {break 32}
=> 32
>> some_case {32}
=> 69
>>

It's kinda a moot/uninteresting point I'm taking now, though. However,
it was new news to meet the semantics of `proc' differed from Proc.new
so radically! Thanks guys.

Arlen