2017年7月9日 星期日

[Python]Higher-order-function

這邊先介紹一個Python的功能,『函數式編程』(functional programming),他的意思就是將函數當成參數包在另外一個參數裡面,例如有一個系統內建函數: abs,這是輸出一個絕對值的value,今天有一個使用者自訂函數: add2(x,y,abs)





ex:
def add2(x,y,abs):
   return abs(x)+abs(y)

a=add2(2,3,abs)
print(a) #5

這邊可以看到abs作為一個函式的參數,成為另外一個函式add2的參數之一,這是一種高度抽象的程式編寫方法,至於執行效率自然比低階語言差,這是一定的,至於差哪邊不是這樣要筆記,有空去看計算機概論 / 結構。

實際上在add2的函式中,計算過程是這樣
add2(2,3,abs)
=> abs(2)=2
=> abs(3)=3
return 2+3 #5


沒有留言:

張貼留言

[Python] Partial function

在Python中有許多偏函數( Partial function)可以使用,常見的就是string的轉換 ex : int('50') #50 這個例子就是把string type的50轉換成int的50,而且是10進制 那好,問題來了,能不能變成8...