ts wrote:
>  Do I expect too much from Proc#curry ?
> 
> vgs% ./ruby -ve 'a = lambda {|x, y, &b| p b }; b = a.curry[1]; b.call(2) {}; a.call(1, 2) {}'
> ruby 1.9.0 (2008-02-15 revision 15477) [i686-linux]
> nil
> #<Proc:0xb7d5d27c@-e:1>
> vgs% 
> 
> 
>  ruby don't see the block
> 
> 
> 
> Guy Decoux
> 

I can't comment on whether or not Guy has found a bug.

I'd like to ask, however, what the rationale is for adding this fairly 
major new piece of API after 1.9.0.  I could see this going into the 2.0 
development branch, when it opens, but do we need it in 1.9?  (I ask 
this, obviously, as someone who has just written and published a book 
covering Ruby 1.9--I'd really like the 1.9 API to stay stable!)

Also, what is the use case for currying?  (Functional programming is not 
my strong suit, but I thought that currying was mostly of theoretical 
interest and a side effect of the fact that lambda calculus only allowed 
single arguments to functions.) Is anyone going to use Proc.curry for 
anything other than partial application?  If not, wouldn't a papply (or 
partial_apply) method be easier and more efficient than the more general 
currying?

In that case, Guy's code:

    b = a.curry()[1]   # parens added for clarity

would become

    b = a.papply(1)

	David