Functional programming in action

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Eleanor Thomas

Senior Data Analytics Engineer

Functional programming in action

  • ตัวอย่าง pure function สามแบบ
  • ความแตกต่างสำคัญระหว่าง pure function กับ Python function ทั่วไป: ไม่มี side effects
  • Pure function สามารถเรียกใช้ pure function อื่นและยังคงเป็น pure

กระดานร่าง

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างที่ 1 - เขียน pure function

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • สร้างลิสต์ใหม่ว่างเปล่าก่อน
  • วนผ่านแต่ละรายการในลิสต์ input
    • ยกกำลังสอง
    • เพิ่มเข้าลิสต์ใหม่
  • คืนค่าลิสต์ใหม่
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างที่ 2 - แก้ไข "impure" function

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
  • ขึ้นอยู่กับตัวแปรที่อยู่นอก function body
  • ไม่ใช่ pure function
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างที่ 2 - แก้ไข "impure" function แล้ว

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_mean และ scale_factor กลายเป็น input parameter ของฟังก์ชัน
  • ฟังก์ชันนี้เป็น "pure" แล้ว
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างที่ 3 - รวม pure function เข้าด้วยกัน

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
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

มาฝึกกันเถอะ!

แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Preparing Video For Download...