ফাংশনকে প্যারামিটার হিসেবে পাস করা এবং ফাংশন রিটার্ন করা

হাইয়ার-অর্ডার ফাংশন (Higher-order Functions) - ফাংশনাল প্রোগ্রামিং (Functional Programming) - Computer Science

183

ফাংশনাল প্রোগ্রামিংয়ের অন্যতম বৈশিষ্ট্য হলো ফাংশনকে প্যারামিটার হিসেবে পাস করা এবং ফাংশনকে রিটার্ন করা। এই বৈশিষ্ট্যগুলোর মাধ্যমে প্রোগ্রামিং আরও ডাইনামিক এবং পুনরায় ব্যবহারযোগ্য হয়ে ওঠে। ফাংশনগুলোকে প্রথম শ্রেণির নাগরিক (First-Class Citizens) হিসেবে ব্যবহার করা যায়, অর্থাৎ এগুলোকে অন্যান্য ডেটা টাইপের মতো ভেরিয়েবল হিসেবে সংরক্ষণ, প্যারামিটার হিসেবে পাস এবং ফাংশন থেকে রিটার্ন করা যায়।

ফাংশনকে প্যারামিটার হিসেবে পাস করা


ফাংশনাল প্রোগ্রামিংয়ের অন্যতম শক্তিশালী বৈশিষ্ট্য হলো ফাংশনকে প্যারামিটার হিসেবে পাস করা। এর মাধ্যমে ফাংশনগুলোকে আরও জেনেরিক এবং পুনরায় ব্যবহারযোগ্য করে তোলা যায়। এটি হায়ার-অর্ডার ফাংশন তৈরিতে ব্যবহৃত হয়, যেখানে একটি ফাংশন অন্য একটি ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে।

উদাহরণ (Python):

def apply_operation(x, y, operation):
    return operation(x, y)

def add(a, b):
    return a + b

def multiply(a, b):
    return a * b

# add এবং multiply ফাংশনকে প্যারামিটার হিসেবে পাঠানো হচ্ছে
print(apply_operation(5, 3, add))      # আউটপুট: 8
print(apply_operation(5, 3, multiply))  # আউটপুট: 15

এখানে apply_operation একটি হায়ার-অর্ডার ফাংশন, যা operation প্যারামিটার হিসেবে একটি ফাংশন গ্রহণ করে। এটি add এবং multiply ফাংশনকে প্যারামিটার হিসেবে পাস করে আলাদা আলাদা আউটপুট প্রদান করছে।

ফাংশনকে রিটার্ন করা


ফাংশনাল প্রোগ্রামিংয়ে একটি ফাংশন অন্য একটি ফাংশনকে রিটার্ন করতে পারে। এটি ক্লোজার তৈরিতে সহায়ক, যেখানে একটি ফাংশন তার লোকাল ভেরিয়েবল এবং ফাংশন সহ রিটার্ন হয়। এই পদ্ধতি কোডকে আরও ডাইনামিক করে এবং ফাংশনগুলোকে আরও ফ্লেক্সিবলভাবে ব্যবহার করার সুযোগ দেয়।

উদাহরণ (Python):

def power(exponent):
    def raise_to_power(x):
        return x ** exponent
    return raise_to_power

# power ফাংশন থেকে নতুন ফাংশন তৈরি করা হচ্ছে
square = power(2)
cube = power(3)

print(square(5))  # আউটপুট: 25
print(cube(5))    # আউটপুট: 125

এখানে power ফাংশনটি raise_to_power নামক একটি ফাংশন রিটার্ন করছে, যা তার চারপাশের exponent ভেরিয়েবল অ্যাক্সেস করতে পারে। এই ক্লোজারের কারণে square এবং cube ফাংশন ভিন্ন ভিন্ন exponent মানে কাজ করে।

ফাংশন প্যারামিটার এবং ফাংশন রিটার্নের ব্যবহারিক সুবিধা


১. কোডের পুনরায় ব্যবহারযোগ্যতা: ফাংশন প্যারামিটার হিসেবে পাস করার মাধ্যমে সাধারণ ফাংশনগুলোকে কাস্টমাইজ করা যায়, ফলে কোডকে পুনরায় ব্যবহারযোগ্য করা সহজ হয়।

২. কোডের ডাইনামিক আচরণ: ফাংশন রিটার্ন করার মাধ্যমে ফাংশনগুলো ডাইনামিক আচরণ করে। অর্থাৎ, প্রোগ্রামের প্রয়োজনে আলাদা আলাদা কাজ সম্পন্ন করার জন্য একই ফাংশন থেকে ভিন্ন ভিন্ন ফাংশন তৈরি করা যায়।

৩. জটিল কাজ সহজে সম্পাদন: হায়ার-অর্ডার ফাংশনের সাহায্যে জটিল কাজকে সহজে সম্পাদন করা যায়, কারণ এতে কোড ছোট, সংক্ষিপ্ত এবং পাঠযোগ্য থাকে।

ফাংশনকে প্যারামিটার হিসেবে পাস করা এবং ফাংশন রিটার্ন করা - তুলনামূলক চিত্র


বৈশিষ্ট্যফাংশনকে প্যারামিটার হিসেবে পাস করাফাংশনকে রিটার্ন করা
বিবরণফাংশন প্যারামিটার হিসেবে পাস করে নির্দিষ্ট কাজ সম্পাদন করা যায়ফাংশন থেকে আরেকটি ফাংশন রিটার্ন করা যায়
কোডের নমনীয়তাফাংশনগুলো আরও কাস্টমাইজ করা যায়প্রয়োজন অনুযায়ী নতুন ফাংশন তৈরি করা যায়
ব্যবহারিক উদাহরণmap, filter, reduceক্লোজার, ফ্যাক্টরি ফাংশন
কোডের জটিলতাজটিল কাজ ছোট ফাংশনে ভাগ করা যায়ফাংশনের ভেতর ফাংশন তৈরি করে ক্লোজার তৈরি করা যায়
প্রোগ্রামিং প্যারাডাইমসাধারণত হায়ার-অর্ডার ফাংশন তৈরিতে ব্যবহৃতক্লোজার বা ফাংশন কারখানা তৈরি করতে ব্যবহৃত

ফাংশনকে প্যারামিটার হিসেবে পাস করা এবং ফাংশনকে রিটার্ন করা প্রোগ্রামিংয়ের নমনীয়তা এবং কার্যকারিতা বৃদ্ধি করে। এটি প্রোগ্রামারদের জন্য একটি শক্তিশালী টুল হিসেবে কাজ করে এবং ফাংশনাল প্রোগ্রামিংয়ে অত্যন্ত গুরুত্বপূর্ণ একটি বৈশিষ্ট্য।

Content added By
Promotion

Are you sure to start over?

Loading...