Передача функции в аргумент в Scala - PullRequest
0 голосов
/ 30 ноября 2011

Есть ли способ сделать что-то вроде argument.<keyword>(function) в Scala?

Например:

[1,2,3].supply(myFunc), получая 6, если бы myFunc была функцией суммирования.

Кажется, проще просто связать функции, если бы я мог это сделать, вместо того, чтобы что-то вычислять и «оборачивать» в аргумент для вызова функции.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Вы можете определить это сами, если хотите.Его часто называют «оператором трубы»:

class AnyWrapper[A](wrapped: A) {
  def |>[B](f: A => B) = f(wrapped)
}
implicit def extendAny[A](wrapped: A): AnyWrapper[A] = new AnyWrapper(wrapped)

Тогда:

def plus1(i: Int) = i + 1
val fortyTwo = 41 |> plus1
0 голосов
/ 30 ноября 2011

Вы имеете в виду что-то вроде этого:

val sum = { (a: Int, b: Int) => a + b }

List(1, 2, 3).reduceLeft(sum)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...