bonotakeの日記

元・ソフトウェア工学系研究者、今・AI系エンジニア

Haskellでのカリー化

参照:


訂正を入れてみる。

g (a, b, x) = a * x + b

g1_1 (a, b) = \x -> g (a, b, x)
g1_2 = curry3 g

g2 = curry $ curry3 g

ただし↓

curry3 :: ((a, b, c) -> d) -> ((a, b) -> c -> d)
curry3 f = \(a, b) c -> f (a, b, c)

実行結果。

*Main> g (3, 5, 7)
26
*Main> g1_1 (3, 5) 7
26
*Main> g1_2 (3, 5) 7
26
*Main> g2 3 5 7
26
注:bonotakeは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。