Как я объясняю в моей книге , у компилятора нет возможности узнать, какое правило вы хотите использовать для неявных скобок.Конечно, в случае
times plus 1,2, minus 5,2
для человека очевидно, что вы хотите, чтобы оно значило
times(plus(1,2), minus(5,2))
Но вы также можете написать
times 5, plus 1, parseInt str, 10
и ожидаем, что оно будет понято (как есть) как
times(5, plus(1, parseInt(str, 10))
Правило для неявных скобок CoffeeScript очень простое: они идут до конца выражения.Так, например, вы всегда можете вставить Math.floor
перед математическим выражением.
В качестве стилистического аспекта я обычно опускаю только паренсы для первого вызова функции в строке, что позволяет избежать любой путаницы.Это означает, что я напишу ваш пример как
times plus(1,2), minus(5,2)
Неплохо, верно?