العودية
في برمجة الكمبيوتر ، مصطلح العودية يصف وظيفة أو طريقة تحسب بشكل متكرر جزءًا أصغر من نفسها للوصول إلى النتيجة النهائية. إنه مشابه للتكرار ، ولكن بدلاً من تكرار مجموعة من العمليات ، فإن الوظيفة العودية تحقق التكرار من خلال الإشارة إلى نفسها في تعريفها الخاص. في حين أن مفهوم البرمجة العودية قد يكون من الصعب فهمه في البداية ، فإن إتقانه يمكن أن يكون مفيدًا للغاية. العودية هي إحدى الأدوات الأساسية لعلوم الكمبيوتر.
المثال الكلاسيكي هو الطريقة العودية لحساب مضروب الرقم. مضروب عدد صحيح ن ، وهو مكتوب باسم ن! ، هي نتيجة ضرب n في جميع الأعداد الصحيحة الموجبة الأصغر من n. على سبيل المثال ، 3! = 3 × 2 × 1 ، مما ينتج عنه 6 و 4! = 4 × 3 × 2 × 1 ، مما ينتج عنه 24. الطريقة الفعالة لحساب عاملي هي باستخدام دالة تكرارية.
يوجد أدناه مثال على دالة عاملة متكررة مكتوبة بلغة جافا سكريبت.
function factorial (n) { return (n === 0) ? 1 : n * factorial (n-1); }
كما ترى ، جزء من تعريف الوظيفة عاملي هي نتيجة عاملي أجريت على عدد صحيح أصغر. باستدعاء نفسه ، يمكنه ضرب الرقم في كل رقم موجب أقل منه ثم إرجاع النتيجة النهائية. يمكن أن تكون الدوال التكرارية مفيدة في العمليات الحسابية الأخرى ، مثل حساب أرقام فيبوناتشي أو القاسم المشترك الأكبر.
يمكن أن يؤدي استخدام المنطق العودي إلى بعض العيوب ، بما في ذلك إنشاء حلقة لا نهاية لها في البرمجة. لهذا السبب ، فإن وجود حالة هروب (مثل القيام حتى) يساعد في تقليل ، إن لم يكن القضاء ، فرصة حدوث حلقة لا نهاية لها. في حالة حدوث حلقة لا نهاية لها ، فقد يتسبب ذلك في أن يستخدم البرنامج قدرًا كبيرًا من الذاكرة. أيضًا ، قد يتسبب في توقف أحد البرامج أو نظام التشغيل أو الكمبيوتر عن العمل.