1.高階函式
高階函式就是把函式當成引數傳遞的函式。
例如:
def add(x,y,f):
return f(x) + f(y)
print add(-4,3,abs)
結果是 7
map()函式
map()函式的python內建的高階函式,他接受乙個函式f 和引數list,並把list的元素傳遞給函式f,然後返回乙個函式f處理完list元素的列表。
例如:
lt = [1,2,3,4,5]
def fun1(x):
return x*x
ml = map(fun1,lt)
print ml
最終返回的結果是個列表
reduce()函式
reduce函式是python內建的高階函式,reduce()函式接收的引數跟map()類似,乙個函式f,乙個list,但行為和map()不同,reduce函式傳入的f必須接收2個引數,第一次呼叫把list的前兩個元素傳遞給f,第二次呼叫時就是把前兩個 元素計算結果當成第乙個引數,list的第三個元素當成第二個引數,傳入f進行操作,以後以此類推,直到返回最終結果。
例如:
lis = [1,2,3,4,5]
def fun2(x,y):
return x + y
res = reduce(fun2,lis,10)
print res
計算結果是
解釋:
1.a = fun2(1,2) 值為3
2.b = fun2(a,3) 值為 6
3.c = fun2(b,4) 值為 10
4.d = dun2(c,5) 值為15
5,計算 f(d,10) 結果是25、
# 傳入的函式必須接收2個引數。
filter()函式
filter()函式是python內建的乙個高階函式,filter()函式接收乙個函式f 跟乙個list.這個函式f的作用就是對每個元素進行判斷,返回true 或者false. filter()判斷的結果自動過濾掉不符合條件的元素,返回由符合條件的元素組成的新的list列表
舉例:
lis2 = [1,2,3,4,5,6,7,8,9,10]
def fun3(x):
return x % 2 == 0
rus = filter(fun3,lis2)
print (rus)
返回結果:
[2, 4, 6, 8, 10]
2.匿名函式
顧名思義就是沒有名字的函式,lambda是一種快速定義單行的最小函式,可以用在任何需要函式的地方。
例如:
def sum(x,y):
return x + y
m = lambda x,y:x+y
print (m(4,5))
print type(m)
Scala高階 匿名函式和高階函式
scala版本 2.10.5 一 函式是第一等公民 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變數。4 把函式儲存在資料結構裡。在scala中,函式就像普通變數一樣,同樣也具有函式的型別。二 函式型別 1 定義 在scala語言中,函式型別的格式為a b,表示乙個接...
python高階函式和匿名函式
高階函式 允許將函式本身作為引數傳入另乙個函式 允許返回乙個函式。允許返回乙個函式。map 函式 map的第乙個引數為自定義函式,第二個引數為自定義可迭代物件 例子 定義乙個函式f2求平方,使用map函式,求list1的值的平方,list1平方規則按照f2函式執行,返回結果型別為list。list1...
Scala高階函式和匿名函式
目錄 一 函式是第一等公民 二 函式型別 1 定義 2 3 執行結果 三 高階函式 1 定義 2 3 執行結果 四 匿名函式 1 匿名函式為1個引數。2 匿名函式中定義多個引數 3 不給匿名函式設定引數 五 匿名函式例項 1 把函式作為實參傳遞給另外乙個函式。2 把函式作為返回值。3 把函式賦值給變...