柯里化與惰性求值

2021-09-29 12:34:15 字數 389 閱讀 4049

柯里化是函式式程式設計裡的概念。理論上說,柯里化是把接受多個引數的函式變換成接受乙個單一引數(最初函式的第乙個引數)的函式,並且返回接受餘下的引數而且返回結果的新函式的技術。

例如有函式:

sub f1 

這裡f1接受2個引數。

所以如果我們固定$b=1,就得到sub f1(1),這是乙個接受1個引數的新函式,這個過程便叫做柯里化。

實際上,sub f1(1)可以理解為:

sub f2 

因為柯里化函式在呼叫端可以避免很多不必要的括號,而且,柯里化函式允許通過省略後面的引數方便的部分應用。所以當我們想呼叫f1 1 2時,通過柯里化,我們可以這樣呼叫:f2 2

惰性求值:需要時再呼叫

柯里化與反柯里化

柯里化,可以理解為提前接收部分引數,延遲執行,不立即輸出結果,而是返回乙個接受剩餘引數的函式。因為這樣的特性,也被稱為部分計算函式。柯里化,是乙個逐步接收引數的過程。在接下來的剖析中,你會深刻體會到這一點。反柯里化,是乙個泛型化的過程。它使得被反柯里化的函式,可以接收更多引數。目的是建立乙個更普適性...

柯里化與反柯里化

柯里化,可以理解為提前接收部分引數,延遲執行,不立即輸出結果,而是返回乙個接受剩餘引數的函式。因為這樣的特性,也被稱為部分計算函式。柯里化,是乙個逐步接收引數的過程。在接下來的剖析中,你會深刻體會到這一點。反柯里化,是乙個泛型化的過程。它使得被反柯里化的函式,可以接收更多引數。目的是建立乙個更普適性...

高階函式 函式柯里化與反柯里化

一 函式柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數而且返回結果的新函式的技術。例 記錄程式設計師乙個月的加班總時間,那麼好,我們首先要做的是記錄程式設計師每天加班的時間,然後把乙個月中每天的加班的時間相加,就得到了乙個...