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