パイプライン演算子
Pipeline operator
パイプ演算子とも呼ばれる。
一般的な関数型の記述では y = f(g(h(x))) という形式で書くが、これはネストが深くなると読みにくくなる。順序も内側から外側に向かうため、見た順と逆順になってしまう。
メソッドチェーンを使うとそれっぽく見えるが、出力されるデータ型でメソッドが呼び出せる必要が出てくる。 code:txt
y = x.h().g.().f();
一方、いちいち以下のように書くと途中の一時変数が冗長になる。
code:txt
yh = h(x);
yg = g(yh);
y = f(yg);
これを改善するために、パイプラインという形で、連続的な関数呼び出しを書くための演算子がパイプライン演算子。
code:txt
# 前置き派と後置き派がある
y =
x
|> h
|> g
|> f
y =
x |>
h |>
g |>
f
パイプラインで引き渡すデータと、追加パラメータのような使い方が一般的。データの加工を連続的に表現するのに最適。
code:txt
y =
x
h(a:="abc") |>
g(n:=123, d:=0.1) |>
f(name:="col")
実例
F#
R言語
|> R 4.1から正式に対応(ドキュメントが見当たらない)
%>% tidyverse ライブラリを導入すると使えるようになる。