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アソシエイト・プログラムの参加者です。