কম্পিউটার টিউটোরিয়াল

HOC (Higher Order Function) দিয়ে দুটি সংখ্যা গুণ - JavaScript

Higher Order Function (HOC) হলো যেসব ফাংশন অন্য ফাংশন আর্গুমেন্ট হিসেবে নেয় বা ফাংশন রিটার্ন করে।

কারিয়িং (Currying) প্যাটার্ন

const productHOC = (num1) => {
  return (num2) => {
    return num1 * num2;
  };
};

// অ্যারো ফাংশনে সংক্ষিপ্ত
const multiply = a => b => a * b;

// টেস্ট
console.log(productHOC(24)(5));     // 120
console.log(multiply(24)(5));       // 120

// আংশিক অ্যাপ্লিকেশন (Partial Application)
const multiplyBy5 = multiply(5);
console.log(multiplyBy5(10));       // 50
console.log(multiplyBy5(20));       // 100

ব্যবহারিক উদাহরণ

// কনফিগারেবল মাল্টিপ্লায়ার
const createMultiplier = (factor) => (value) => value * factor;

const double = createMultiplier(2);
const triple = createMultiplier(3);
const tenTimes = createMultiplier(10);

console.log(double(5));    // 10
console.log(triple(5));    // 15
console.log(tenTimes(5));  // 50

// অ্যারে ম্যাপে ব্যবহার
const prices = [10, 20, 30];
const withTax = prices.map(createMultiplier(1.1));
console.log(withTax); // [11, 22, 33]

HOC এর সুবিধা

  • Reusability: একবার লিখে বারবার ব্যবহার
  • Composition: ছোট ফাংশন মিলিয়ে বড় ফাংশন
  • Partial Application: আংশিক আর্গুমেন্ট প্রি-ফিল
  • Currying: এক-এক আর্গুমেন্ট নেয়া

উৎপাদন

120
  1. জাভাস্ক্রিপ্টে অ্যারেতে তৃতীয় সবচেয়ে ছোট সংখ্যা বের করা

  2. জাভাস্ক্রিপ্টে দুটি সংখ্যা যোগ করার সময় ক্যারি (carry) কতবার হয় সেটি গণনা করা

  3. জাভাস্ক্রিপ্টে সর্টেড অ্যারে থেকে টার্গেটের নিকটতম দুটি এলিমেন্ট খুঁজে বের করা

  4. C++-এ '-' অপারেটর ব্যবহার করে দুটি সংখ্যা যোগ (Operator Overloading)