Currying:
lambda { |x,y| x + y }.curry => lambda { |x| lambda { |y| x + y } }
Partial Application
lambda { |x, y| x + y }.apply(2) => lambda { |y| 2 + y }
And given #curry, #apply is trivial:
class Proc; def apply(param); self.curry.call(param); end end
...or at least, that's my understanding...
Currying:
lambda { |x,y| x + y }.curry => lambda { |x| lambda { |y| x + y } }
Partial Application
lambda { |x, y| x + y }.apply(2) => lambda { |y| 2 + y }
And given #curry, #apply is trivial:
class Proc; def apply(param); self.curry.call(param); end end
...or at least, that's my understanding...