函數柯里化

柯里化定義

柯里化 是把接受多個參數的函數變換成接受一個單一參數(最初函數的第一個參數)的函數,而且返回接受餘下的參數並且返回結果的新函數的技術。函數

fn(x, y) -> fn(x)(y)

它的原理就是,把fn()函數作成嵌套函數,外層函數的返回值是內層函數,這樣,外層函數調用完,返回的是一個函數,而後能接着調用。code

柯里化使用

拿最經常使用的add函數來舉例,普通寫法:原理

def add(x,y):
    return x + y
print(add(1,2))  
# 輸出:3
  • 柯里化:
def add_currying(x):
    def _add(y):
        return x + y
    return _add
print(add_currying(1)(2))
# 輸出:3

也就是說柯里化的過程就是把原來帶兩個參數的函數add_currying,變成了一個嵌套函數,外層函數仍是_add,可是所帶的參數變成了一個x。而add_currying的返回值就是以原有的第二個參數做爲參數的內層函數_add。currying

相關文章
相關標籤/搜索