موضوع قبلی

31. خلاصه

موضوع بعدی

1. بازگشت: یک مثال ساده

توابع بازگشتی (recursive)

اگر توی اینترنت دنبال معنی کلمهٔ recursion بگردید اغلب به چیزی مشابه این بر‌می‌خورید

Recursion رجوع شود به recursion.

این تعریف کاملاً غلط، اشتباه و نادرست است.

اگر شما یک رایانه می‌بودید که قرار بود تعریف بالا را تجزیه‌ و تحلیل کند؛ در حلقهٔ بی نهایت جستجو به دنبال معنی این کلمه گیر می‌کردید. از آن‌جایی که شما دارید این متن را می‌خوانید؛ یعنی یا شما مثل رایانه کار نکردید که در همان حلقهٔ بی نهایت بالا گیر کنید، و یا شما همهٔ متن این‌جا را نخوانده‌اید و مخصوصاً از روی تعریف بالا رد شدید.

گفته می‌شود که «توابع بازگشتی» چیزی است که سخت فهمیده می‌شود. به این حرف اعتنا نکنید. اگر مفهوم حلقه‌ها را فهمیده باشید؛ معنای بازگشت (یا همان بازرخداد) را هم می‌توانید بفهمید.

خب؛ می‌پرسید، پس اصطلاح «بازگشتی» یعنی چی؟...

تعریف «بازگشت» در مفهوم ریاضی و رایانه به فارسی یعنی فرآیند تکرار موارد به روش شبیه به هم. در برنامه‌نویسی یعنی تکرار دستورها - مثل حلقه. و باز هم مثل حلقه، دلمان نمی‌خواهد تا ابد در آن گیر کنیم.

برای مدرّس‌ها

بعضی‌ها فکر می‌کنند «بازگشت» مفهوم سختی است، راحت باشید و از این بخش-که کلّاً جدا از بقیّه است- رد شوید.

علّت این که خواستم «بازگشت» را در این قسمت ارائه کنم این بود که از یک طرف، همهٔ پیش‌نیازهای آن در قسمت‌های قبلی آموزش داده شده بود. از طرف دیگر آموزش اخیر حلقهٔ while -که اغلب می‌تواند با «بازگشت» به جای هم دیگر استفاده شود- فرصتی برای تقویت فهم حلقه‌سازی را می‌داد. اگر مدرّسی بخواهد برای معرفی مفهوم «بازگشت» منتظر این بماند که فراگیران کاملاً با حلقه‌های while آشنا شوند و استفاده از آن در وجودشان نهادینه شود؛ ممکن است مفهوم «بازگشت» در مقایسه با حلقه برای فراگیرانش خیلی متفاوت و ناگهان خیلی سخت به نظر برسد.