将两个lambda传递给一个函数

时间:2014-08-10 00:09:13

标签: syntax lambda coffeescript

我正在尝试将2个函数传递给函数,第一个函数返回一个对象。

不知何故,解析器得到'错误',我不知道如何解决这个问题。 我希望在单行代码中使用它

我的CS

foo (a, b) -> bar {gna: foo}, (a, b) -> a is b

JS

foo(function(a, b) {
  return bar({
    gna: foo
  }, function(a, b) {
    return a === b;
  });
});

预期的JS

foo(
    function(a, b) {
      return bar({gna: foo});
    }, function(a, b) {
      return a === b;
    }
);

2 个答案:

答案 0 :(得分:2)

在编译器猜错时,将括号中的一个或两个匿名函数包装将消除语法歧义:

foo ((a, b) -> bar { gna: foo }), (a, b) -> a is b

答案 1 :(得分:0)

foo(
  (a, b) -> bar {gna: foo}
  (a, b) -> a is b
  (a, b) ->
    a += b
    a isnt b
  (a, b) -> a+b
)