关于 Ruby 1.9.x 中的柯里化,我在某些地方一直在使用它,并且可以翻译为基本上支持 proc 参数的默认参数:
p = proc {|x, y, z|x + y + z}
p.curry[1] #=> returns a lambda
p.curry[1, 2] #=> returns a lambda
p.curry[1, 2, 3] #=> 6
p2 = p.curry[1, 2]
p2.(2) #=> 5
p2.(4) #=> 7
很方便,对吧?问题是,我希望能够反向 curry,这意味着,用随机值填充我的 proc 的最后一个参数。像这样:
p = proc{|x, y| x - y }.curry[1]
p.(4)
我想要的结果是 3。这将返回 -3。