Computer Programming Functions এর সাথে Iteration এবং Recursion গাইড ও নোট

299

KDB+ বা Q ভাষা অত্যন্ত শক্তিশালী এবং উচ্চ কর্মক্ষম একটি স্ক্রিপ্টিং ভাষা, যা ডেটা ম্যানিপুলেশন, বিশ্লেষণ, এবং বিভিন্ন গণনা করতে ব্যবহৃত হয়। Q ভাষায় Functions ব্যবহারের মাধ্যমে আপনি বিভিন্ন ধরনের লজিক্যাল অপারেশন এবং গণনা করতে পারেন। এখানে আমরা Functions, Iteration (পুনরাবৃত্তি) এবং Recursion (পুনরাবৃত্তি ফাংশন) নিয়ে আলোচনা করব।


১. Functions (ফাংশন)

Q ভাষায় একটি ফাংশন এমন একটি কোড ব্লক যা নির্দিষ্ট একটি কাজ সম্পাদন করে এবং একটি আউটপুট রিটার্ন করে। ফাংশন ডিফাইন করার জন্য {} ব্যবহার করা হয়।

ফাংশন ডিফাইন করা:

addTwo: {x + 2}

এখানে, addTwo একটি ফাংশন যা ইনপুট x নিয়ে তার সাথে ২ যোগ করে এবং ফলাফল রিটার্ন করে।

ফাংশন কল করা:

addTwo 3  / আউটপুট হবে 5

ফাংশনটি কল করলে 3 + 2 = 5 হবে।


২. Iteration (পুনরাবৃত্তি)

Iteration (পুনরাবৃত্তি) একটি প্রক্রিয়া যেখানে একটি ফাংশন একাধিকবার চলতে থাকে বা একটি নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে। KDB+ এ বিভিন্ন ধরনের লুপ বা পুনরাবৃত্তির পদ্ধতি ব্যবহার করা যেতে পারে। তবে, KDB+ ভাষায় each অপারেটর এবং for লুপ সাধারণত ব্যবহৃত হয় পুনরাবৃত্তি করার জন্য।

each অপারেটর:

each অপারেটর একটি লিস্ট বা টেবিলের প্রতিটি আইটেমের উপর ফাংশন প্রয়োগ করতে ব্যবহৃত হয়।

numbers: 1 2 3 4 5
addTwoEach: {x + 2}
addTwoEach each numbers  / আউটপুট হবে 3 4 5 6 7

এখানে, each অপারেটর addTwoEach ফাংশনটি numbers লিস্টের প্রতিটি উপাদানে প্রয়োগ করেছে।

for লুপ ব্যবহার:

sum: 0
for i in 1 2 3 4 5 do
    sum: sum + i

এখানে, for লুপটি 1 থেকে 5 পর্যন্ত প্রতিটি মানকে sum ভেরিয়েবলের সাথে যোগ করবে, যার ফলে আউটপুট হবে 15


৩. Recursion (পুনরাবৃত্তি ফাংশন)

Recursion হলো একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন নিজেকে কল করে। Q ভাষায় পুনরাবৃত্তি ফাংশন ব্যবহার করতে খুবই সহজ। সাধারণত, রিকার্সিভ ফাংশন দুটি অংশ থাকে:

  1. Base Case: একটি শর্ত যা রিকার্সন থামিয়ে দেয়।
  2. Recursive Case: যেখানে ফাংশন নিজেকে কল করে।

উদাহরণ: ফ্যাক্টোরিয়াল ফাংশন

ফ্যাক্টোরিয়াল একটি রিকার্সিভ ক্যালকুলেশন যেখানে একটি সংখ্যা n এর ফ্যাক্টোরিয়াল হল n! = n * (n-1)! এবং এর base case হল 1! = 1

factorial: {if[x = 1; 1; x * factorial[x - 1]]}

এখানে, factorial একটি ফাংশন যা নিজেকে কল করছে যতক্ষণ না x = 1 হয়ে যায়, তারপর 1 রিটার্ন করে। এটি একটি সাধারণ রিকার্সিভ ফাংশন।

ফাংশন কল করা:

factorial 5  / আউটপুট হবে 120

এখানে, 5! = 5 * 4 * 3 * 2 * 1 = 120


৪. Iteration এবং Recursion এর মধ্যে পার্থক্য

বৈশিষ্ট্যIterationRecursion
বেসিক ধারণাএকটি প্রক্রিয়া পুনরাবৃত্তি হয় একটি নির্দিষ্ট শর্ত বা ইনপুট পর্যন্ত।ফাংশন নিজেকে পুনরায় কল করে নির্দিষ্ট শর্ত পূর্ণ না হওয়া পর্যন্ত।
প্রক্রিয়াfor লুপ বা each অপারেটর দিয়ে পুনরাবৃত্তি করা হয়।নিজেই নিজেকে কল করে ফাংশন পুনরাবৃত্তি হয়।
উদাহরণfor i in 1 2 3 4 5 do ...factorial[x] ফাংশন নিজেই নিজেকে কল করছে।
কার্যকারিতানির্দিষ্ট সংখ্যক বার কার্যক্রম চলে।শর্ত মিলে না হওয়া পর্যন্ত চলতে থাকে।
গণনা ক্ষমতাসাধারণত কম মেমরি ব্যবহৃত হয়।অধিক মেমরি ব্যবহৃত হতে পারে, বিশেষ করে গভীর রিকার্সন হলে।

সারসংক্ষেপ

  • Functions (ফাংশন) Q ভাষায় কোডের একাংশ যা একটি নির্দিষ্ট কাজ করে এবং আউটপুট রিটার্ন করে।
  • Iteration (পুনরাবৃত্তি) লুপের মাধ্যমে একাধিক বার একটি প্রক্রিয়া বা ফাংশন প্রয়োগ করা হয়।
  • Recursion (পুনরাবৃত্তি ফাংশন) হলো একটি ফাংশন যা নিজেই নিজেকে কল করে এবং একটি শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে।

Q ভাষায় আপনি ইচ্ছেমতো Iteration এবং Recursion ব্যবহার করতে পারেন আপনার প্রোগ্রামিং প্রয়োজন অনুসারে। Iteration সাধারণত সহজ এবং কার্যকরী, কিন্তু Recursion অনেক শক্তিশালী যখন একটি সমস্যা নিজে নিজে সমাধান করতে চায়।

Content added || updated By
Promotion

Are you sure to start over?

Loading...