apache-flex - 弹性 : implementing classic curry function in actionscript?

标签 apache-flex actionscript-3

使用漂亮的语法在 ActionScript 中实现经典 curry 函数的最佳方法是什么?

我试过了:

Function.prototype.curry = function()
{
return "helloWorld";
}

trace((function():void {}).curry());

...方法,但没有奏效。

我想我坚持使用一种丑陋的方法,例如:
FunctionUtils.curry(fp, ... args)

???

最佳答案

我必须承认我从未理解“ curry ”和“部分”之间的区别。我使用以下函数或多或少地做你想做的事情:

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

关于apache-flex - 弹性 : implementing classic curry function in actionscript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/359635/

相关文章:

actionscript-3 - 为什么Context会成为GCRoot?

actionscript-3 - 用as3画一个 hive

actionscript-3 - 缓存具有多个参数的方法结果的最佳方法 - 对象作为字典中的键?

actionscript-3 - 嵌入字体未出现在 actionscript 创建的文本字段中

actionscript-3 - 创建 AIR 文件 : Could not generate timestamp: Remote host closed connection during handshake 时出错

apache-flex - 如何从同时播放的所有声音中获取声音数据? ( ActionScript 闪烁)

apache-flex - 如何在Java中使用AIR 2.0 NativeProcess API?

apache-flex - Flex DataGrid/List 拖放 - 如何避免复制

apache-flex - FLEX XMLDecoder 将 `09.00` 变为 "09.00",但将 `10.00` 变为 10

flash - Flash中如何获取对象的宽高?