У меня есть обсуждение Несколько списков параметров в руководстве по стилю Scala, которое я поддерживаю. Я понял, что существует два способа currying, и мне интересно, что это за варианты использования:
def add(a:Int)(b:Int) = {a + b}
// Works
add(5)(6)
// Doesn't compile
val f = add(5)
// Works
val f = add(5)_
f(10) // yields 15
def add2(a:Int) = { b:Int => a + b }
// Works
add2(5)(6)
// Also works
val f = add2(5)
f(10) // Yields 15
// Doesn't compile
val f = add2(5)_
Руководство по стилям неверно означает, что они одинаковы, когда они явно не соответствуют. Руководство пытается понять суть созданных карриных функций, и, хотя вторая форма не является "по-книжной" карри, она по-прежнему очень похожа на первую форму (хотя, возможно, проще в использовании, потому что вам не нужна _
)
От тех, кто использует эти формы, какой консенсус о том, когда использовать одну форму над другой?