السلام عليكم ورحمة الله وبركاته
الإستدعاء الذاتي أو Recursion هو إستدعاء الدالة نفسها من داخلها أي من داخل الدالة إستخدم هذا النوع من طرق في لغات البرمجة المسمات Functional languages
بحيث هذه الأخيرة لا تحتوي على ما يسمى الآن في اللغات الحديثة Structured programming أي الحلقات (Loops,while)
على العموم الإستدعاء الذاتي له مزايا وعيوب لن أتعمق كثيراا في شرحها كلها ولكن سأذكر المهم منها
فمن عيوب الإستدعاء الذاتي هو فيض المكدس Stack over flow لماذا يحدث هذا الأخير؟
سبب واضح الإستدعاء ذاتي ينتهج منهجية في عمله فهو مزيح من loop و while فهو يقوم بالتكرار ويتوقف عندما يتحقق الشرط conditione هذه هي طريقة عمل
الإستدعاء الذاتي لاحظ المثال التالي لحساب مضروب العدد 5
أولا سنستخدم الطريقة الحديثة Structured programming

وبإستخدام الإستدعاء الذاتي

لاحظ جيدا ماذا يحدث داخل الذاكرة عن إستخدام الإستدعاء الذاتي


لو لم يوجد الشرط سوف تستمر الدالة الى ما لا نهاية الى ان يحدث buffer over flow
فLoop أفضل غالبا من الإستدعاء الذاتي وليس دائما فالإستدعاء الذاتي يقلل من المتغيرات ويقلل من طول الكود البرمجي
أرجوا أن أكون قد وفقت في الشرح
