函數式程式設計實作

Programming Paradigm 概念

Eleanor Thomas

Senior Data Analytics Engineer

函數式程式設計實作

  • 三個純函式範例
  • 「純」函式與一般 Python 函式的關鍵差異:不產生副作用
  • 純函式可呼叫其他純函式,仍保持純粹

繪圖板

Programming Paradigm 概念

範例 1-撰寫純函式

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • 先建立新的空清單
  • 逐一走訪輸入清單的每個項目
    • 取平方
    • 加到新清單
  • 回傳新清單
Programming Paradigm 概念

範例 2-修正「不純」函式

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • 相依於函式本體外的變數
  • 非純函式
Programming Paradigm 概念

範例 2-修正後的不純函式

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • sample_meanscale_factor 改為函式的輸入參數
  • 函式現在是「純」的
Programming Paradigm 概念

範例 3-組合純函式

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
Programming Paradigm 概念

一起來練習吧!

Programming Paradigm 概念

Preparing Video For Download...