Scala之高階函式

2021-07-11 15:57:35 字數 941 閱讀 2594

第乙個高階函式:

def formatresult(name:string,n:int,f:int=>int)=
formatresult是乙個高階函式,他接受乙個函式f為引數,引數的型別是int=>int,表示接受整型並返回乙個整型結果。

多態函式

通常,在寫高階函式時,希望寫出的**能夠適用於任何型別,它們被稱為「多態函式」,有時也叫「泛型函式」。

def

partiall[a,b,c](a:a,f:(a,b)=>c):b=>c

函式partiall有三個型別引數:a,b,c。它帶有兩個引數,引數f是乙個有兩個型別分別為a,b的引數、返回值型別為c的函式。函式

partiall的返回值也是乙個函式,型別為b=>c。

我們來嘗試練習下:

一、實現issorted方法,檢測array[a]是否按照給定的比較函式排序。

def

issorted[a](as:array[a],ordered(a,a)=>boolean):boolean

二、實現乙個高階函式,可以組合兩個函式為乙個函式

def compose[a,b,c](f:b=>c,g:a=>b):a=>c

answers:

一、

defissorted[a](as: array[a], ordered: (a,a) => boolean): boolean =

二、

def

compose[a,b,c](f: b => c, g: a => b): a => c =

a => f(g(a))

Scala 之高階函式

能夠接受函式作為引數的函式,叫做高階函式 higher order function 可使應用程式更加健壯。object higherorderfunction sum 是接收乙個 double,返回乙個 double def sum d double double def mod d double...

Scala之高階函式

scala混合了物件導向和函式式的特性,我們通常將可以做為引數傳遞到方法中的表示式叫做函式。在函式式程式語言中,函式是 頭等公民 高階函式包含 作為值的函式 匿名函式 閉包 柯里化等等。閉包 就是能讀取其他函式 方法 內部的函式 方法 object closurerest sumf def main...

Python之高階函式

一 什麼是高階函式 函式作為實參傳遞給函式的或者函式名為返回值的函式稱為高階函式。1 實參傳遞給函式 2 函式名為返回值 二 系統內建的高階函式 1 map函式 至少需要兩個引數,第乙個引數是函式名,第二個引數是序列 str,list,tuple map功能 把序列中的每乙個元素作為引數,傳給函式進...