【发布时间】:2016-01-07 18:16:00
【问题描述】:
我想知道是否可以在magrittr 语言的magrittr 包中定义像%>% 这样的管道运算符。我发现了几个类似的实现,如下所示:
implicit class PipelineContainer[F](val value: F) {
def |>[G] (f: F => G) = f(value)
}
这样x |> f |> g 就像g(f(x)) 一样工作
现在我希望这个运算符即使在函数接受多个参数时也能工作,在这种情况下,管道参数左侧的值成为右侧函数的第一个参数。例如,x |> f(2) |> g(3) 变为 g(f(x, 2), 3)。我怎样才能在scala中实现这个?它不必与我在这里展示的语法相同,但越简单越好。
【问题讨论】: