先看看百科當中的關於柯里化的介紹
在電腦科學中,柯里化(英語:currying),又譯為卡瑞化或加里化,是把接受多個引數的函式變換成接受乙個單一引數(最初函式的第乙個引數)的函式,並且返回接受餘下的引數而且返回結果的新函式的技術。
在直覺上,柯里化聲稱「如果你固定某些引數,你將得到接受餘下引數的乙個函式」。所以對於有兩個變數的函式 y x } y^,如果固定了 y = 2 y=2,則得到有乙個變數的函式 2 x } 2^。
接著看看scala當中的柯里化
看如下**:
需求:實現兩個引數相加
//普通方法1 引數為兩個的方法
def method1(x:int,y:int):int=
//呼叫
val i1: int = method1(1,2)
println(i1)
//普通方法2 引數為乙個的方法
def method2(x:int):int=>int= //返回乙個int=>int型別函式
}val inttoint2: int => int = method2(1)
val i2: int = inttoint2(2) //呼叫返回的函式
println(i2)
//柯里化的方法
def method(x:int)(y:int):int=
//呼叫方式一
val i4: int = method(1)(2)
println(i4)
//呼叫方式二
val inttoint: int => int = method(1) //返回乙個
val i3: int = inttoint(2)
println(i3)
普通方法一 必須輸入兩個引數才能得到結果
普通方法二可以實現百科中柯里化的效果 但是只能依次呼叫獲取函式輸出結果
柯里化方法可以兩個引數一起傳遞得到結果 也可以傳乙個引數得函式
實際上就是方法二的乙個簡化,使得函式呼叫更加靈活。
Scala中的柯里化
柯里化 currying 技術 christopher strachey 以邏輯學家 haskell curry 命名的 儘管它是 moses schnfinkel 和 gottlob frege 發明的 它是 把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘...
Scala柯里化和反柯里化
名詞解釋 在電腦科學中,柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數且返回結果的新函式的技術。柯里化舉例說明 def curry1 a,b,c a a,f a,b c b c b b f a,b 這個函式的結果是乙個高階...
Scala學習筆記 Scala中的柯里化
柯里化的意義 一 提高程式效能,而是使 模組化,減少耦合增強其可維護性。二 函式的通用性有所降低,但是適用性有所提高。沒使用語法糖的 sum 函式 def sum f int int int,int int 使用語法糖後的 sum 函式 def sum f int int a int,b int i...