Recursive Function In Bengali JavaScript Series ⇾ Chapter Nine (Part -3)
Find and FindIndex Function, Sort, Some and Every Function Uses, Return a Function from Another Function, Recursive, Currying, Function Composition

♗ Love To Play With → JavaScript & NodeJS.
✢ Interested → Web & Backend Development.
↯ Current Stack → MERN Stack
এই পর্বে আমরা আলোচনা করব রিকার্সিভ ফাঙ্কশন নিয়ে :প্রধানত হায়ার লেভেল এ কাজ করার জন্য রিকার্সিভ ফাঙ্কশন খুবই গুরুত্বপূর্ণ ।আমরা খুব সংক্ষিপ্ত ভাবে রিকার্সিভ ফাঙ্কশন দেখব এবং তার সাথে তার কিছু ব্যবহার উল্লেখ করব ।
81. Recursive Function:
রিকার্সিভ ফাঙ্কশন এমন একটা ফাঙ্কশন যে নিজেই নিজেকে কল করতে পারে।এই ফাঙ্কশনটি যখন নিজেই নিজেকে কল করে তখন ইনফিনিটি আউটপুট হয়ে যাওয়ার চান্স থাকে ।যাতে ইনফিনিটি না হয়ে যায় তাই আমরা একটা টার্মিনিটোর পয়েন্ট সেট করে দেই যখন টার্মিনেটর পয়েন্ট এ হিট করে তখন সেই ফাঙ্কশন কল টার্মিনেট হয়ে যায় প্রোগ্রাম বন্ধ হয়ে যায় ।
ধরো তোমাকে কিছু একটা দশবার কনসোল এ প্রিন্ট করতে বলা হলো এবং শর্ত দেয়া হল,for loop এবং ১০ বার কনসোল লগ প্রিয়েন্ট না করে করতে।
এখানে যে শর্ত দেয়া হয়েছে আমরা রিকার্সিভ ফাঙ্কশন ব্যবহার করে এই কাজ করতে পারি ।loop এর মত করেই ।
আমরা একটা উদহারণ দিয়ে বিষয়টা দেখার চেষ্টা করছি ।
আমরা আমাদের চ্যাপ্টার nine ফোল্ডার এর মধ্যে recursive.js নামে ফাইল তৈরী করছি এবং সেখানে নিচে দেয়া কোড টি চালিয়েছি :
function sayHi(n){
if(n === 0){
return
}
console.log("Hello i am Recursive ",n)
sayHi(n-1)
}
sayHi(10)
প্রথমে আমরা sayHi নামে ফাঙ্কশন নিয়েছি যা n নামে একটি পেরামিটার নিবে । ফাঙ্কশনটির মধ্যে if স্টেটমেন্ট চালিয়েছি এবং বলেছি n এর মান যখন ০ হবে তখন return করে দিবে ।এবারে আমরা আমাদের আউটপুট কনসোল লগ এ লিখেছি console.log("Hello i am Recursive ",n) ।এর পর sayHI ফাঙ্কশন কল করেছি এবং আর্গুমেন্ট এ n-1 দিয়েছি কারণ বাহিরে আমরা sayHI যখন অর্গগুমেন্ট ১০ দিয়ে কল করেছি সেই মান n থেকে বিয়োগ করে করে আগাবে যখনি n এর মান ০ হবে তখনি রিটার্ন করবে ।
আমরা আউটপুট পাই :
Hello i am Recursive 10
Hello i am Recursive 9
Hello i am Recursive 8
Hello i am Recursive 7
Hello i am Recursive 6
Hello i am Recursive 5
Hello i am Recursive 4
Hello i am Recursive 3
Hello i am Recursive 2
Hello i am Recursive 1
এখানে তুমি যদি n এর মান -১ না করতে বা n এর মান যদি আপডেট না হত তাহলে ইনফিনিটি হয়ে যেত ।
এবারে আমরা রিকার্সিভ ফাঙ্কশন ব্যবহার করে ১ থেকে ১০০ পর্যন্ত সংখ্যা গুলোর যোগফল বের করতে চাচ্ছি তাহলে যা করতে হবে :
function sum(n){
if(n===1){
return 1
}
return n + sum(n-1)
}
console.log(sum(100))
sum নামে একটা ফাঙ্কশন নিলাম যার পেরামিটার n এবারে if কন্ডিশন চালালাম n === ১ হয় তবে রিটার্ন করবে ১ আর তা না হলে রিটার্ন করবে n এর বর্তমান ভ্যালু এর সাথে sum ফাঙ্কশন এর মধ্যে n এর ভ্যালু -১ করবে যখনি কন্ডিশন সত্য হবে এবং n এর মান ১ হবে তখন আমাদের আউটপুট দিবে ।আর সত্য না হলে n এর বর্তমান ভ্যালু এবং sum(n -১) করবে ।





