Подтвердить что ты не робот

Передача функции в качестве первого аргумента в вызове функции в coffeescript

В следующем коде

x= (f,n) -> f(n)
...
x( (n) -> n+1 , 5) #parse error

Как я могу исправить ошибку синтаксического анализа выше?

Спасибо

4b9b3361

Ответ 1

Пара скобок исправила бы эту проблему, просто нашла ответ на IRC.

x( (n) -> n+1  , 5) #parse error
x ((n) -> n+1) , 5 #fixed

Ответ 2

Обычно я делаю это:

foo ->
  doStuff('foo')
, 5

или это:

fn = -> doStuff('foo')
foo fn, 5

Обертка дополнительных парсеров внутри списков аргументов никогда не сидела прямо со мной, так как мне было сложно разобрать.

Ответ 3

Ответ Али немного отличается от вопроса, который он задал. Одно правильное решение -

x = (f,n) -> f(n)

x(( -> n+1), 5)