函式作為乙個變數傳入到了另乙個函式中,那麼該作為引數的函式的型別是:function1,即:(引數型別) => 返回型別
object funparameter }
1) map(plus(_)) 中的 plus(_) 就是將 plus 這個函式當做乙個引數傳給了 map,_這裡代表從集合中 遍歷出來的乙個元素。
plus _ 則代表的是將函式的引用傳入,跟plus(_) 含義不一樣。
2) plus(_) 這裡也可以寫成 plus 表示對 array(1,2,3,4) 遍歷,將每次遍歷的元素傳給 plus 的 x 3) 進行 3 + x 運算後,返回新的 int ,並加入到新的集合 result1 中
4) def map[b, that](f: a => b) 的宣告中的 f: a => b 乙個函式
沒有名字的函式就是匿名函式,可以通過函式表示式來設定匿名函式
object anonymousefunction 包括
val triple = (x: double) =>
println("triple" + triple(3)) // 9.0
} }val f1 = (n1: int, n2: int ) =>
println("f1 型別=" + f1) println(f1(10, 30))
能夠接受函式作為引數的函式,叫做高階函式 (higher-order function)。可使應用程式更加健壯
object higherorderfunction
//sum 是接收乙個 double,返回乙個 double
def sum(d: double): double =
def mod(d: double): int =
val res = test(sum, mod, 5.0) // println("res=" + res) // 2.0
println(res)
}}
匿名函式當函式當返回引數,函式當柯里化
object higherorderfunction2
//分步執行
//f1 就是 (y:int)=>3-y
val f1 = minusxy(3)
println("f1 的型別=" + f1)
println(f1(1)) // 2 println(f1(9)) // -6
//也可以一步到位的呼叫
println(minusxy(4)(9)) // -5
}}
python 把函式作為引數 高階函式
在實際使用中,我們有時希望將函式作為引數傳遞給另乙個方法使用。比如裝飾器實際就是函式呼叫函式 使用函式當做入參 那就可以把方法名a當做入參傳遞給方法b,呼叫的時候直接用 方法名 來呼叫方法內容 import time def run func print time.strftime y m d h ...
高階函式和匿名函式
1.高階函式 高階函式就是把函式當成引數傳遞的函式。例如 def add x,y,f return f x f y print add 4,3,abs 結果是 7 map 函式 map 函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函...
Python高階函式 匿名函式
當我們在傳入函式時,有些時候,不需要顯示定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x 2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 list map lambda x x x,1,1,2,3,4,5,6,7,8,9...