Posted at

[python]カリー化

More than 3 years have passed since last update.


カリー化

wikipedia: カリー化


カリー化 (currying, カリー化された=curried) とは、複数の引数をとる関数を、引数が「もとの関数の最初の引数」で戻り値が「もとの関数の残りの引数を取り結果を返す関数」であるような関数にすること(あるいはその関数のこと)である


つまり、カリー化は一つ一つ引数を渡していくものを作ります。

下記のようにすると、一行目は、二つの引数を渡さなければならないが、2行目では、まず初めにx値(ここでは5)だけをわたして、curried_5y = lambda y: 5*yという関数ができるわけです。


sample


curry.py

xy = lambda x, y: x*y

curried_xy = lambda x: lambda y: x*y