2013年2月16日土曜日

F#の||>演算子について

F#言語仕様には|>演算子と||>演算子と|||>演算子が定義されています。|>演算子はシンボルと演算子のリファレンスにも掲載されていますし、比較的よく使われています。

x |> f
とすると f(x)が実行されるものです。さて残りの2つ、これらは言語仕様には存在だけが記されており、それぞれop_PipeRight2、opPipeRight3にコンパイルされることしかわかりません。調べたところ、これらは
let inline (|>) x f = f x let inline (||>) (x,y) f = f x y let inline (|||>) (x,y,z) f = f x y z
のようなものだということがわかりました。つまり左辺にはタプルを受け、右辺の関数にタプルの値を展開して引数として適用するものです。

結論。高度に発達した関数型言語はググラビリティが非常に高い。(op_PipeRight2でググったけどこの話題が全然見つからなかった…。)

0 件のコメント: