1) 函式程式設計中,接受多個引數的函式都可以轉化為接受單個引數的函式,這個轉化過程就叫柯里 化
2) 柯里化就是證明了函式只需要乙個引數而已。其實我們剛才的學習過程中,已經涉及到了柯里 化操作。
3) 不用設立柯里化存在的意義這樣的命題。柯里化就是以函式為主體這種思想發展的必然產生的 結果。(即:柯里化是面向函式思想的必然產生結果)
編寫乙個函式,接收兩個整數,可以返回兩個數的乘積,要求:
使用常規的方式完成
使用閉包的方式完成
使用函式柯里化完成
def mul(x: int, y: int) = x * y
println(mul(10, 10))
def mulcurry(x: int) = (y: int) => x * y
println(mulcurry(10)(9))
def mulcurry2(x: int)(y:int) = x * y
println(mulcurry2(10)(8))
比較兩個字串在忽略大小寫的情況下是否相等,注意,這裡是兩個任務:
全部轉大寫(或小寫)
比較是否相等 針對這兩個操作,我們用乙個函式去處理的思想,其實也變成了兩個函式處理的思想(柯里化) 使用函式柯里化的思想來任務
object currydemo02
//隱式類 (可以參考前面講解內容)
implicit class testeq(s: string)
}val str1 = "hello"
println(str1.checkeq("hello")(eq))
//在看乙個簡寫形式
println(str1.checkeq("hello")(_.equals(_)))
}}
函式柯里化 curry
一 函式柯里化的特性 1 引數復用 ajax 示例一 function ajax type,url,data var ajaxcurry curry ajax 以get請求為例 示例二 function add a,b,c const curryadd function a console.log ...
函式柯里化(curry)
我們依舊從需求入手,只有知道我們要幹嘛,才能一步步引導我們堆砌出萬丈高樓。先看下面的 function add x,y console.log add 3,1 4如果我們想這樣執行add 3 1 也能輸出4,我們該怎麼做.我們從這個函式呼叫可以知道,函式呼叫了兩次,並且呼叫第一次後返回的是函式才能再...
函式柯里化 curry
一 函式柯里化的特性 1 引數復用 ajax 示例一 function ajax type,url,data var ajaxcurry curry ajax 以get請求為例 示例二 function add a,b,c const curryadd function a console.log ...