top page > computer > haskell > web_lecture > for_programmer > flip.html
更新日:
文責: 重城良国

引数を入れ替える

関数flip

動作

関数flipは関数の第1、第2引数をいれかえる。第2引数の部分適用に使える。

% ghci
Prelude> mod 8 3
2
Prelude> flip mod 3 8
2
Prelude> let mod3 = flip mod 3
Prelude> mod3 8
2

定義

第1引数は2引数関数fだ。第2、第3引数の値をいれかえて関数fを適用する。

flip :: (a -> b -> c) -> b -> a -> c
flip f x y = f y x

演算子の部分適用

演算子は(`mod` 3)のように第2引数に部分適用できる。関数flipでもできる。

flip mod 3

(/ 3)なら以下のようになる。

flip (/) 3

まとめ

関数flipは2引数関数の2つの引数をいれかえる。演算子の部分適用に暗黙に使われていると考えられる。

課題

  1. 3引数関数の第1引数と第3引数をいれかえる関数flip13を定義せよ
  2. 第1引数を無視し第2引数の値を返す関数const'を関数flipとconstで定義せよ

「関数合成」へもどる 「2つの引数に同じ関数を適用」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics