হাইয়ার-অর্ডার ফাংশন কী এবং এর উদাহরণ

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

189

হায়ার-অর্ডার ফাংশন (Higher-Order Function) হলো এমন একটি ফাংশন, যা অন্য ফাংশনকে প্যারামিটার হিসেবে নিতে পারে, অথবা ফাংশনকে রিটার্ন হিসেবে প্রদান করতে পারে। এটি প্রোগ্রামিংয়ের একটি শক্তিশালী বৈশিষ্ট্য, যা ফাংশনকে আরও ডাইনামিক ও পুনরায় ব্যবহারযোগ্য করে তোলে। ফাংশনাল প্রোগ্রামিংয়ে হায়ার-অর্ডার ফাংশন খুবই গুরুত্বপূর্ণ, কারণ এটি কোডকে ছোট, পরিষ্কার, এবং পুনরায় ব্যবহারযোগ্য করে তোলে।

হায়ার-অর্ডার ফাংশনের বৈশিষ্ট্য


১. ফাংশন প্যারামিটার হিসেবে গ্রহণ: হায়ার-অর্ডার ফাংশন অন্য ফাংশনকে প্যারামিটার হিসেবে নিতে পারে। উদাহরণস্বরূপ, map, filter, এবং reduce ফাংশনগুলো অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে।

২. ফাংশন রিটার্ন করতে পারে: হায়ার-অর্ডার ফাংশন অন্য ফাংশনকে রিটার্ন হিসেবে দিতে পারে, যা কোডের ডাইনামিজম বৃদ্ধি করে এবং একই ফাংশনকে ভিন্ন প্রেক্ষিতে ব্যবহার করতে সহায়তা করে।

হায়ার-অর্ডার ফাংশনের উদাহরণ


উদাহরণ ১: ফাংশন প্যারামিটার হিসেবে ব্যবহার (Python)

map একটি হায়ার-অর্ডার ফাংশন, যা একটি লিস্টের প্রতিটি উপাদানে নির্দিষ্ট একটি ফাংশন প্রয়োগ করে।

def square(x):
    return x * x

numbers = [1, 2, 3, 4]
squared_numbers = list(map(square, numbers))
print(squared_numbers)  # আউটপুট: [1, 4, 9, 16]

এখানে map ফাংশনটি square ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করেছে এবং numbers তালিকার প্রতিটি উপাদানে square ফাংশন প্রয়োগ করেছে।

উদাহরণ ২: ফাংশন রিটার্ন করা

হায়ার-অর্ডার ফাংশন ফাংশনকে রিটার্ন করতেও পারে। উদাহরণস্বরূপ:

def multiplier(factor):
    def multiply_by(x):
        return x * factor
    return multiply_by

times_three = multiplier(3)
print(times_three(10))  # আউটপুট: 30

এখানে multiplier ফাংশনটি একটি হায়ার-অর্ডার ফাংশন, কারণ এটি একটি ফাংশন multiply_by রিটার্ন করছে। times_three হলো multiplier(3) ফাংশনের ফলাফল, যা যে কোনো সংখ্যাকে ৩ দিয়ে গুণ করতে পারবে।

উদাহরণ ৩: filter এবং reduce ব্যবহার

filter ফাংশন একটি শর্ত অনুযায়ী লিস্টের উপাদানগুলোকে ফিল্টার করে। উদাহরণস্বরূপ, একটি লিস্ট থেকে শুধুমাত্র জোড় সংখ্যাগুলো বের করা:

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # আউটপুট: [2, 4, 6]

reduce ফাংশন লিস্টের উপাদানগুলোকে একটি একক ফলাফলে রূপান্তরিত করতে ব্যবহৃত হয়।

from functools import reduce

numbers = [1, 2, 3, 4]
sum_numbers = reduce(lambda x, y: x + y, numbers)
print(sum_numbers)  # আউটপুট: 10

এখানে reduce ফাংশনটি লিস্টের সবগুলো উপাদানকে যোগ করে একটি একক মান প্রদান করছে।

হায়ার-অর্ডার ফাংশনের সুবিধা


১. কোডের পুনঃব্যবহারযোগ্যতা: হায়ার-অর্ডার ফাংশন ব্যবহার করে ফাংশনগুলোকে সহজে পুনঃব্যবহার করা যায়।

২. কোডের সরলতা বৃদ্ধি: একই কাজ বারবার না লিখে একটি ফাংশন ব্যবহার করা যায়, যা কোডের সরলতা বৃদ্ধি করে।

৩. ডাইনামিক প্রোগ্রামিং: হায়ার-অর্ডার ফাংশনের সাহায্যে প্রোগ্রামিং আরও ডাইনামিক ও নমনীয় হয়।


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

Content added By
Promotion

Are you sure to start over?

Loading...