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