В Javascript, я бы написать функцию высшего порядка возвращения и другую функцию таким образом:Как написать нетривиальную функцию, возвращающую функцию в Scala?
var f = function(x) {
return function(y) {
// something using x and y
}
}
Синтаксис Scala для этого, кажется:
def f(x: Any)(y: Any) = // Something with x and y
это хорошо, если вы никогда не должны делать ничего перед созданием возвращаемой функции. Но предположим, что вы должны были обработать х как-то перед созданием функции возврата (пример снова в Javascript):
var f = function(x) {
// Something using x
return function(y) {
// something using y based on the above logic
}
}
documentation неясно, по этому вопросу.
Синтаксис Вы упоминали для методов. Проверьте lambdas вместо: http://docs.scala-lang.org/tutorials/tour/anonymous-function-syntax.html –
Спасибо за ссылку! Не знал, что синтаксис отличается от методов против функций. –