Julia のパイプ演算子は引数が 1 個の関数を,一度に 1 個の関数のみをサポートする。
Pipe パッケージを使うことにより,base-R の |> と同じように,'_' をプレースホルダーとして使うことができるようになる。
前の記事 R: magrittr の %>% と base-R の |> で挙動が異なる
と同じ計算 (((2+3)-4)*5/6)^7 をやるためには,まず二項演算関数を定義する。
julia> add(x, y) = x + y
julia> mul(x, y) = x * y
julia> sub(x, y) = x - y
julia> div(x, y) = x / y
julia> pow(x, y) = x ^ y
然る後,以下のようにする。
julia> using Pipe
julia> @pipe 2 |> add(_, 3) |> sub(_, 4) |> mul(_, 5) |> div(_, 6) |> pow(_, 7) |> println
0.2790816472336535
最後の println は括弧をつけない。付けるとすれば println(_) とする必要がある。
うん。あまりかっこよくないね。パイプを使うためにそれに使える関数を書くなどとは,本末転倒か?
※コメント投稿者のブログIDはブログ作成者のみに通知されます