函式柯里化 curry

2022-04-04 20:28:05 字數 913 閱讀 2309

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 ...