Recursion ในการเขียนโปรแกรมเชิงฟังก์ชัน

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

Eleanor Thomas

Senior Data Analytics Engineer

Recursion คืออะไร?

  • ฟังก์ชัน Recursive: ฟังก์ชันที่เรียกตัวเองซ้ำ
  • ต้องมีเงื่อนไขสิ้นสุด หรือ base case
  • มีการเรียกตัวเองซ้ำด้วยค่า input ที่เปลี่ยนไป
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ทำไมต้องใช้ recursion?

  • บางปัญหาเข้าใจง่ายกว่าเมื่อนิยามแบบ recursive
  • เลข Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างการใช้ recursion เพิ่มเติม

ระบบไฟล์

  • การค้นหาในระบบไฟล์
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างการใช้ recursion เพิ่มเติม

ระบบไฟล์; อัลกอริทึมการเรียงลำดับ

  • การค้นหาในระบบไฟล์
  • อัลกอริทึมการเรียงลำดับบางประเภท เช่น Merge Sort
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

ตัวอย่างการใช้ recursion เพิ่มเติม

ระบบไฟล์; อัลกอริทึมการเรียงลำดับ; โครงสร้างข้อมูล

  • การค้นหาในระบบไฟล์
  • อัลกอริทึมการเรียงลำดับบางประเภท เช่น Merge Sort
  • โครงสร้างข้อมูลหลายอย่างถูกนิยามแบบ recursive
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

Recursion เทียบกับ iteration

  • ฟังก์ชัน recursive ทุกตัวเขียนแบบ iterative ได้เช่นกัน
  • ฟังก์ชัน iterative ใช้ loop แทนการเรียกตัวเองซ้ำ
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
แนวคิดกระบวนทัศน์การเขียนโปรแกรม

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

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

Preparing Video For Download...