TG Telegram Group & Channel
Mohcin Space | United States America (US)
Create: Update:

ال Recursion، ما هي؟ نظرة عامة و فهم عام!، -من الاساسيات-

ال Recursion هي تقنية مفيدة لحل المشاكل عن طريق تقسيمها إلى base case و recursive case.

تقنيا؛ هي لما تقوم دالة function بالنداء على نفسها داخل الكود. من أشهر الأمثلة على استخدامها هي طريقة/تقنية divide-and-conquer، اللي تُستخدم كثير في حل المشاكل المعقدة بطريقة ذكية و سريعة.

لكن لو نسيت تحدد base case، ممكن الكود يدخل في infinite loop ويوقف التطبيق تماما.
مثال بسيط يوضح المشكلة:

function countdown($number) {
echo $number . "\n";
countdown($number - 1);
}

countdown(20);


الكود أعلاه سيستمر في إستدعاء نفسه إلى ما لا نهاية.. لأنه لا يتوفر على شرط يوقف الـ recursion.

الحل: استخدم الـ base case

function countdown($number) {
if ($number <= 0) {
return;
}
echo $number . "\n";
countdown($number - 1);
}

في هذا المثال:

if ($number <= 0) { return; } ==> the base case

countdown($number - 1); ==> recursive case.

أنا استخدمت early return بدل if/else لأن القراءة أوضح (خيار شخصي).

الـ recursion من الناحية التقنية تستخدم نفس مفهوم الـ loops، ولا تعطيك أداء أعلى، لكن في بعض الحالات تكون أوضح وأسهل للفهم، خاصة لو كنت تتعامل مع هياكل متكررة أو المشاكل المعقدة و الضخمة.

#PHP #Recursion #ProgrammingTips #DX #CleanCode #Algorithms

ال Recursion، ما هي؟ نظرة عامة و فهم عام!، -من الاساسيات-

ال Recursion هي تقنية مفيدة لحل المشاكل عن طريق تقسيمها إلى base case و recursive case.

تقنيا؛ هي لما تقوم دالة function بالنداء على نفسها داخل الكود. من أشهر الأمثلة على استخدامها هي طريقة/تقنية divide-and-conquer، اللي تُستخدم كثير في حل المشاكل المعقدة بطريقة ذكية و سريعة.

لكن لو نسيت تحدد base case، ممكن الكود يدخل في infinite loop ويوقف التطبيق تماما.
مثال بسيط يوضح المشكلة:

function countdown($number) {
echo $number . "\n";
countdown($number - 1);
}

countdown(20);


الكود أعلاه سيستمر في إستدعاء نفسه إلى ما لا نهاية.. لأنه لا يتوفر على شرط يوقف الـ recursion.

الحل: استخدم الـ base case

function countdown($number) {
if ($number <= 0) {
return;
}
echo $number . "\n";
countdown($number - 1);
}

في هذا المثال:

if ($number <= 0) { return; } ==> the base case

countdown($number - 1); ==> recursive case.

أنا استخدمت early return بدل if/else لأن القراءة أوضح (خيار شخصي).

الـ recursion من الناحية التقنية تستخدم نفس مفهوم الـ loops، ولا تعطيك أداء أعلى، لكن في بعض الحالات تكون أوضح وأسهل للفهم، خاصة لو كنت تتعامل مع هياكل متكررة أو المشاكل المعقدة و الضخمة.

#PHP #Recursion #ProgrammingTips #DX #CleanCode #Algorithms


>>Click here to continue<<

Mohcin Space




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)