Syntax 将两个lambda传递给函数

Syntax 将两个lambda传递给函数,syntax,lambda,coffeescript,Syntax,Lambda,Coffeescript,我试图将两个函数传递给一个函数,第一个函数返回一个对象 不知怎的,解析器弄错了,我不知道如何解决这个问题。 我更喜欢将它放在一行代码中 我的CS JS foo(function(a, b) { return bar({ gna: foo }, function(a, b) { return a === b; }); }); 预期的JS foo( function(a, b) { return bar({gna: foo}); }, fun

我试图将两个函数传递给一个函数,第一个函数返回一个对象

不知怎的,解析器弄错了,我不知道如何解决这个问题。 我更喜欢将它放在一行代码中

我的CS

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;
    }
);

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

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