On Mar 3, 2004, at 19:14, Yukihiro Matsumoto wrote:

> Hi,
>
> In message "Re: concerns about Proc,lambda,block"
>     on 04/03/03, Mauricio FernáÏdez <batsman.geo / yahoo.com> writes:
>
> |do you want to keep Proc and lambda as separate things (like Class &
> |Module) or would you consider merging them and reaching a compromise 
> on
> |their semantics?
>
> My current stand point is that conceptually lambda returns a Proc
> wrapped by argument checker and local jump handler, thus a Proc from
> lambda is still a Proc.  If you really wish to distinguish those two
> (wrapped proc and unwrapped proc), you still have chance to persuade
> me.

Matz:

I'm sorry to be stupid about this: normally I have no trouble 
understanding the way you're thinking about Ruby's semantics, but I'm 
suffering some kind of mental block here.

Based on what you said above, I'd expect the first and third calls of 
the following code not to generate a warning, but they do.

def meth(&b)
   b
end

pr = meth {|a| p a}
pr.call(1,2)

pr = lambda {|a| p a}
pr.call(1,2)

pr = Proc.new {|a| p a}
pr.call(1,2)



Cheers

Dave