হাইয়ার অর্ডার ফাংশন

ফাংশনাল প্রোগ্রামিং - সুইফট প্রোগ্রামিং (Swift Programming) - Computer Programming

160

Swift-এ হাইয়ার অর্ডার ফাংশন হলো এমন ফাংশন, যা অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করতে পারে, অথবা ফাংশনকে রিটার্ন করতে পারে। এটি ফাংশনাল প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ ধারণা, যা কোডকে আরও মডিউলার, পুনঃব্যবহারযোগ্য এবং সংক্ষিপ্ত করে তোলে। হাইয়ার অর্ডার ফাংশন Swift-এ প্রচুর ব্যবহার হয়, যেমন map, filter, এবং reduce

হাইয়ার অর্ডার ফাংশনের গঠন

func higherOrderFunction(param: (Type) -> ReturnType) -> ReturnType {
    // ফাংশনের কার্যক্রম
}
  • param: (Type) -> ReturnType: ফাংশনের প্যারামিটার হিসেবে আরেকটি ফাংশন দেওয়া হয়েছে।
  • এই ধরনের ফাংশন প্রোগ্রামের একটি নির্দিষ্ট কার্যক্রমকে সাধারণ এবং পুনঃব্যবহারযোগ্যভাবে তৈরি করতে সহায়ক।

উদাহরণ: হাইয়ার অর্ডার ফাংশন

func applyOperation(_ a: Int, _ b: Int, operation: (Int, Int) -> Int) -> Int {
    return operation(a, b)
}

// দুটি সংখ্যার যোগফল
let sum = applyOperation(5, 3) { $0 + $1 }
print(sum)  // Output: 8

// দুটি সংখ্যার গুণফল
let product = applyOperation(5, 3) { $0 * $1 }
print(product)  // Output: 15
  • এখানে, applyOperation একটি হাইয়ার অর্ডার ফাংশন, যা দুটি ইন্টিজার এবং একটি ফাংশন প্যারামিটার গ্রহণ করে, যেটি দুটি ইন্টিজার ইনপুট নিয়ে একটি ইন্টিজার রিটার্ন করে।
  • আমরা applyOperation কল করার সময় ক্লোজার ব্যবহার করেছি, যা যোগ এবং গুণ অপারেশন করে।

Swift-এর বিল্ট-ইন হাইয়ার অর্ডার ফাংশন

Swift-এ কয়েকটি গুরুত্বপূর্ণ হাইয়ার অর্ডার ফাংশন রয়েছে, যেগুলি অ্যারে বা সংগ্রহের উপর কার্যকরভাবে অপারেশন করতে ব্যবহৃত হয়। নিচে কিছু সাধারণ উদাহরণ দেওয়া হলো।

১. map

map ফাংশন অ্যারের প্রতিটি উপাদানের উপর নির্দিষ্ট অপারেশন প্রয়োগ করে একটি নতুন অ্যারে তৈরি করে। এটি একটি হাইয়ার অর্ডার ফাংশন, কারণ এটি একটি ক্লোজার বা ফাংশন প্যারামিটার হিসেবে গ্রহণ করে।

let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 }
print(squaredNumbers)  // Output: [1, 4, 9, 16, 25]
  • এখানে, map প্রতিটি উপাদানের উপর ক্লোজারে উল্লেখিত অপারেশন প্রয়োগ করে (এখানে প্রতিটি সংখ্যার বর্গমূল বের করা হয়েছে) এবং একটি নতুন অ্যারে তৈরি করেছে।

২. filter

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

let numbers = [1, 2, 3, 4, 5, 6]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers)  // Output: [2, 4, 6]
  • এখানে, filter প্রতিটি উপাদানের উপর % 2 == 0 শর্ত প্রয়োগ করে এবং যেসব উপাদান শর্ত পূরণ করে, সেগুলি নিয়ে একটি নতুন অ্যারে তৈরি করেছে।

৩. reduce

reduce ফাংশন অ্যারের প্রতিটি উপাদানের উপর নির্দিষ্ট অপারেশন প্রয়োগ করে একটি একক মানে রূপান্তর করে। এটি দুটি প্যারামিটার গ্রহণ করে: একটি শুরুর মান এবং একটি ক্লোজার, যা প্রতিটি উপাদান প্রক্রিয়াজাত করে।

let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { $0 + $1 }
print(sum)  // Output: 15
  • এখানে, reduce ফাংশন প্রতিটি উপাদান যোগ করে একটি একক যোগফল রিটার্ন করেছে। 0 হলো শুরুর মান এবং ক্লোজার $0 + $1 প্রতিটি উপাদানের যোগফল বের করছে।

হাইয়ার অর্ডার ফাংশন ব্যবহার: কাস্টম উদাহরণ

উদাহরণ: বিভিন্ন ধরনের অপারেশন প্রয়োগ করা

func performOperation(on numbers: [Int], using operation: (Int) -> Int) -> [Int] {
    return numbers.map(operation)
}

let numbers = [1, 2, 3, 4, 5]

// প্রতিটি উপাদানের দ্বিগুণ
let doubled = performOperation(on: numbers) { $0 * 2 }
print(doubled)  // Output: [2, 4, 6, 8, 10]

// প্রতিটি উপাদানের বর্গমূল
let squared = performOperation(on: numbers) { $0 * $0 }
print(squared)  // Output: [1, 4, 9, 16, 25]
  • এখানে, performOperation ফাংশনটি একটি অ্যারের প্রতিটি উপাদানের উপর নির্দিষ্ট অপারেশন প্রয়োগ করে নতুন অ্যারে তৈরি করে। এটি একটি হাইয়ার অর্ডার ফাংশন, কারণ এটি একটি ফাংশন প্যারামিটার হিসেবে গ্রহণ করে।

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

১. কোডের পুনঃব্যবহারযোগ্যতা: একবার হাইয়ার অর্ডার ফাংশন লিখলে তা বিভিন্ন ধরনের অপারেশন বা ক্লোজার দিয়ে ব্যবহার করা যায়। ২. কোডের সংক্ষিপ্ততা: ফাংশন বা ক্লোজার প্যারামিটার হিসেবে ব্যবহার করে কম কোডে একই কাজ সম্পন্ন করা যায়। ৩. মডিউলারিটি: হাইয়ার অর্ডার ফাংশনের মাধ্যমে কোডকে ছোট ছোট অংশে ভাগ করা যায়, যা কোডের মডিউলারিটি বাড়ায় এবং পড়তে ও বুঝতে সহজ হয়।

উপসংহার

Swift-এ হাইয়ার অর্ডার ফাংশন ফাংশনাল প্রোগ্রামিং ধারণা ব্যবহার করে প্রোগ্রামকে আরও মডিউলার, পুনঃব্যবহারযোগ্য, এবং কার্যকর করে তোলে।

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

Swift-এ হাইয়ার অর্ডার ফাংশনের ব্যবহার প্রোগ্রামিংকে আরও সংক্ষিপ্ত, কার্যকর এবং শক্তিশালী করে।

Content added By
Promotion

Are you sure to start over?

Loading...