การเรียกตัวเอง

ในการเขียนนิยามการเรียกตัวเอง (recursive defnitions) ต้องมีการระบุ 2 ส่วน ดังต่อไปนี้

1. ส่วนพื้นฐาน (Basis) เป็นส่วนที่มีการนิยามค่าต่ำสุดที่โปรแกรมยังท างานได้อยู่ ในส่วนนี้จะ กลายเป็นเงื่อนไขในการหยุดท างานของโปรแกรมแบบเรียกตัวเอง

2. ส่วนอุปนัย (Induction) เป็นส่วนที่มีการเรียกตัวเองเกิดขึ้น ซ้ า ๆ ในส่วนนี้วิธีของการแก้ปัญหา ใหญ่จะถูกนิยามโดยใช้วิธีของการแก้ปัญหาย่อย

นิยามการเรียกตัวเองของแฟคทอเรียล (Recursive Definition of Factorial)

แฟคทอเรียล n เขียนแทนด้วย n! หมายถึงผลคูณจำนวนเต็มบวกตั้งแต่ 1 ถึง n นั้นคือ n! = 1 * 2 * 3 * ... * n

นิยามการเรียกตัวเองของนิพจน์ (Recursive Definition of Expressions)

พิจารณานิพจน์ (expressions) ที่เกี่ยวกับโอเปอร์เรเตอร์ไบนารี (binary operators) เช่น X*2, (Y/3)*(W+2), X ตัวแปรที่เป็นตัวอักษรหรือตัวเลขในนิพจน์ เรียกว่า ตัวถูกดำเนินการ หรือ โอเปอร์แรนด์ (operands)
ตัวดำเนินการ เช่น +, -, *, / เรียกว่า โอเปอร์เรเตอร์ (operators)
จำนวนอักขระทุกตัวรวมกันในนิพจน์ เรียกว่า ความยาว (length)

สรุป

รูปแบบทั่วไปในการเขียนฟังก์ชันการจัดการลิสต์แบบเรียกตัวเอง ประกอบด้วย

  • ส่วนพื้นฐาน (basis) ซึ่งเป็นเงื่อนไขในการหยุดทำงานของโปรแกรมแบบเรียกตัวเอง
  • ส่วนการจัดการ เช่น การเปรียบเทียบค่ามากสุด ค่าน้อยสุด การบันทึกผลรวมสะสม เป็นต้น
  • ส่วนอุปนัย (induction) ซึ่งเป็นส่วนที่มีการเรียกตัวเองเกิดขึ้น
  • ส่วนแสดงผล เป็นส่วนการส่งผลลัพธ์สุดท้ายกลับมา