Monday, January 23, 2023

ஜாவாஸ்கிரிப்டில் ரிகர்சன்.

 



பொதுவாக ஃபங்க்சன் என்பது குறிப்பிட்ட செயலைச் செய்யும் பிளாக் ஆஃப் கோட் என்பதை அறிவோம்.

உதாரணமாக

Function show()

{

Console.log(“hello world”)l

}

Show();

வெளியீடு:

Hello world

இதில் show() என்பது ஒரு ஃபங்க்சன் ஆகும் .இது தானாக எக்ஸிகியூட் ஆகாது. அதை அழைத்தால் மட்டுமே செயற்படும்.

அதாவது show(); என்ற ஸ்டேட் மெண்டே அதை அழைக்கின்றது.

இப்பொழுது இதில் இரண்டு ஃபங்க்சன்கள் உள்ளன. ஒன்று show(), மற்றொன்று log() ஆகும்.

இந்த ஃபங்க்சன் அழைப்புகள் ஸ்டாக் மெமரியில் ஸ்டோர் செய்யப்படுகின்றது.

முதலி show அடுத்து log என்று ஒன்றன் மேல் ஒன்றாக அமையும்.ஸ்டாக் மெமரியை பொறுத்தவரை கடைசியாக உள்ன் இணைக்கப்பட்டதை முதலில் வெளியேறும்.இந்து முதலில் log ஃபங்க்சன் செயல்படும் அதற்க்டுத்து show ஃபங்க்சனில் செயல்பாடு முடியும்.

இப்பொழுது இன்னொரு ஃபங்க்சன் எழுதுவோம்.

Function xyz()

{

Show();

}

Xyz();

மேலே உள்ள நிரல் வரிகளில் xyz என்ற ஃபங்க்சன் அழைக்கப்படுகின்றது. இது இன்டெர்னல் ஆக show என்ற ஃபங்க்சனை அழைக்கின்றது. அந்த ஃபங்க்சன் இன்டெர்னல் ஆக log என்ற ஃபங்க்சனை அழைக்கின்றது.

இவ்வாறு ஒரு ஃபங்க்சனில் இருந்து மற்றொரு ஃபங்க்சனை அழைக்கலாம்.மேலும் ஒரு ஃபங்க்சனுக்கு உள்ளிருந்த படியே அதே ஃபங்க்சனை அழைக்கலாம். அவ்வாறு அழைக்கப்படும் ஃபங்க்சன் ரிகர்சிவ் ஃபங்க்சன் எனப்படுகின்றது.

சான்றாக

Function show()

{
console.log(“hello”);

Show();

}

Show();

மேலே உள்ள நிரலில் show ஃபுங்க்சன் ஆனது அந்த ஃபங்க்சனின் உள்ளேயிருந்து அழைக்கப்படுகின்றது.இதனால் இந்த ஃபங்க்சன் ரிபிட்டட் ஆக திரும்ப திரும்ப அழைக்கபடுகின்றது.இது ஸ்டாக் மெமரியின் குறிப்பிட்ட லிமிட் வரை அழைக்கப்படும். அதன் பின் பிழை சுட்டப்படும்.

இது json டேட்டாவில் பயன்படுகின்றது. மேலும் இதற்கான கிளாசிக் உதாரணமானது  ஒரு எண்ணின் ஃபேக்டோரியல் அறிதல் ஆகும்.

முதலில் factorial என்றால் என்ன என்று பார்ப்போம். சான்றாக 5 என்ற எண்ணின் ஃபேக்டோரியல் ஆனது 5*4*3*2*1 ஆகும்.

அதாவது

5!=5*4*3*2*1 ஆகும்

இதை

n!=n*(n-1)*(n-2)…(n-(n-1))

என்று எழுதலாம் அல்லவா?

மேலும் 5 எண்ணின் ஃபேக்டோரியல் ஆனது 5*4! அல்லவா.

இதையே

4! என்பது 4*3! அல்லவா?

எனவே

n!=n*(n-1)! ஆகும்.

சான்று நிரல்.

function fact(n)

{

if (n==0)

return 1

else

return n*fact(n-1);

}

let num=5;

let result=fact(num);

console.log(result);

மேலே உள்ள நிரலில் fact என்ற ஃபங்க்சனின் உள்ளேயிருந்து அதே ஃபங்க்சன் அழைக்கபடுகின்றது.

Fact(5)=5*fact(4)

5*4*fact(3)

5*4*3*fact(2)

5*4*3*fact(2)

5*4*3*2*fact(1)

5*4*3*2*1*fact(0)

இதில் கடைசியாக fact(0) என்பது 0வை ரிடர்ன் செய்வதால் அத்துடன் ரொகர்சிவ் முடிப்வடைகின்றது.

அதன் வெளியீடாக

120

என்பது வரும்.

இதுவே ரிகர்சன் எனப்படுகின்றது.

நன்றி.

முத்து கார்த்திகேயன்,மதுரை.

 

ads Udanz

No comments:

Post a Comment