auの日記

プログラミング初心者の日記。(auはハンドルネームです)

カリー化について調べてみた

auです。

「カリー化」という用語をみて、なんだこれはと思ったので調べてみました。

参考
qiita.com

カリー化とは

カリー化(curry)とは、2つ以上引数がある関数を、1つの関数だけで表現するように書き換えることを指します。

def add(x, y):
    return x + y

def add_curry(x):
    def _add(y):
        return x + y
    return _add

print("not curry: ", add(1, 2))
print("curry: ", add_curry(1)(2))

# 実行結果
not curry:  3
curry:  3

普通の足し算とカリー化した足し算では、引数を1つずつ渡しているかが違いです。

・・・色々と調べては見ましたが、片方の引数の値を固定して使ったりもできるようですが、グローバル変数として宣言するのもおかしいでしょうし

>|python|
def add_curry(4):
def _add(y):
return 4 + y
return _add
|

こんな風に書くのもエラーだしということで、どんな風に実装するかがもう少し工夫と理解が必要みたいです。