http://www.haskell.org/haskellwiki/CurryingWikipedia の記事によると本来のカリー化とは違うそうだ。むずかしいことはわからないが、引数の受け取り方の形式を変えるために使うことができそうだ。具体的には、1つのタプルの各要素を複数の値として、もしくは複数の値を1つのタプルとして受け取れるようにする。 > let f (x, y) = x * y > f (2, 3) 6 > curry f 2 3 6 > let g x y = x + y > g 2 3 5 > uncurry g (2, 3) 5 > :t curry f curry f :: Num c => c -> c -> c > :t curry g curry g :: Num (a, b) => a -> b -> (a, b) -> (a, b)