Передать функцию в качестве первого аргумента в вызове функции в coffeescript - PullRequest
16 голосов
/ 05 июля 2011

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

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

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

Спасибо

Ответы [ 3 ]

28 голосов
/ 05 июля 2011

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

x( (n) -> n+1  , 5) #parse error
x ((n) -> n+1) , 5 #fixed
17 голосов
/ 05 июля 2011

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

foo ->
  doStuff('foo')
, 5

или это:

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

Заворачивание лишних паренов в списки аргументов никогда не подходило мне, так как моему мозгу сложно разобрать.

2 голосов
/ 08 июля 2011

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

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

x(( -> n+1), 5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...