使用良好的语法在actionscript中实现经典curry函数的最佳方法是什么?
我试过了:
Function.prototype.curry = function() { return "helloWorld"; } trace((function():void {}).curry());
...方法但是没有用.
我想我坚持一个丑陋的方法,如:
FunctionUtils.curry(fp, ... args)
???
我必须承认,我从未理解"咖喱"和"部分"之间的区别.我使用以下函数来执行或多或少的操作:
package { public function partial( func : Function, ...boundArgs ) : Function { return function( ...dynamicArgs ) : * { return func.apply(null, boundArgs.concat(dynamicArgs)) } } }
用法示例:
var multiply : Function = function( a : Number, b : Number ) : Number { return a * b; } var multiplyByFour : Function = partial(multiply, 4); trace(multiplyByFour(3)); // => 12