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

2引数関数についての復習

(工事中 70%)

はじめに

関数や値の引数や返り値を追加したり削除したりすることで同値変換するやりかたを学ぶ。そのとき基本的なこととして2引数関数の意味を知っておくことが大切だ。

(->)は右結合

関数型をつくるときに使われる(->)は右結合だ。以下のふたつは同じだ。

a -> b -> c
a -> (b -> c)

これを以下のように考えることができる。

とは同じものだ。

関数curryの例

2引数関数返す関数

関数curryを例にしてこのことを確認してみよう。

curry :: ((a, b) -> c) -> (a -> b -> c)
curry f = \x y -> f (x, y)

これは

変換する関数と考えられる。

引数を3つとる関数

関数curryは以下のようにも書ける。

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

これは「タプルをとる関数のほかに引数をふたつとり、それらをタプルにし第1引数の関数を適用する関数」と考えられる。

まとめ

(->)は右結合であり、2引数関数は、引数をひとつとり「引数をひとつとる関数」を返す関数である。

「ファンクターの使い道」へもどる 「ユニット型について」へ

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