implicit class RichFunction1[A, B](val f: A => B) extends AnyVal {
def |>[C](g: B => C) = f andThen g
def <|[C](g: C => A) = f compose g
}
val plus = (_: Int) + 1
val minus = (_: Int) - 1
val suffix = (_: Int) + "!"
val f = plus |> minus |> suffix
println(f(1))
println(f(2))
val g = suffix <| minus <| plus
println(g(1))
println(g(2))
記号これじゃないほうがいいな