Scala是否有函数应用程序运算符?

时间:2014-03-07 09:23:35

标签: scala haskell f# functional-programming

F#有管道运营商:

arg |> func // or arg2 |> func arg1, as opposed to func arg1 arg2
func <| arg

Haskell有$运算符:

func $ arg -- or func1 $ func2 arg, as opposed to func1 (func2 arg)

它们主要用于通过去除函数调用来提高可读性。

Scala中是否有类似的运算符?

2 个答案:

答案 0 :(得分:12)

没有。但是,您可以轻松定义自己的。

implicit class PipeEverything[A](val underlying: A) extends AnyVal {
  def |>[B](f: A => B) = f(underlying)
}

答案 1 :(得分:0)

Scala在标准库中没有此运算符。

Scalaz带了画眉运算符:

arg |> method

与Scalaz相比,如果您更喜欢Cats,则需要Mouse随播库才能获得相同的运算符。