Closures এর সাথে Currying এবং Composition

Computer Programming - গ্রুভি (Groovy) Functions এবং Closures (ফাংশন এবং ক্লোজার) |
185
185

Groovy তে Closures, Currying এবং Composition

Groovy তে closures, currying, এবং composition ফাংশনাল প্রোগ্রামিংয়ের গুরুত্বপূর্ণ বৈশিষ্ট্য। এই কনসেপ্টগুলো Groovy তে খুবই শক্তিশালী এবং আপনাকে আরও নমনীয় ও পুনঃব্যবহারযোগ্য কোড লিখতে সাহায্য করে। চলুন একে একে এগুলোর বিস্তারিত আলোচনা করি।


1. Closures (ক্লোজার)

Closures হল Groovy এর একটি ফিচার যা একটি ফাংশন বা কোড ব্লককে প্রথম-class অবজেক্ট হিসেবে扱 ব্যবহারের সুযোগ দেয়। ক্লোজার একটি ফাংশন হতে পারে যা অন্য একটি ফাংশনে পাস করা যেতে পারে, বা একটি ভেরিয়েবলে সংরক্ষিত হতে পারে। এটি Java এর লাম্বডা এক্সপ্রেশনের মতো, তবে Groovy তে আরও সহজ এবং শক্তিশালী।

Closures এর সিনট্যাক্স:

// Closure ডিক্লেয়ার করা
def greet = { name -> println "Hello, $name!" }

greet("John")  // Output: Hello, John!

এখানে greet একটি ক্লোজার যা name প্যারামিটার নেবে এবং "Hello, !" প্রিন্ট করবে।

Clousure এর মধ্যে 'it' ব্যবহার:

Groovy তে যদি শুধুমাত্র একটিমাত্র প্যারামিটার থাকে, তাহলে আপনি it ব্যবহার করতে পারেন।

def double = { it * 2 }
println double(5)  // Output: 10

এখানে it এর মাধ্যমে একক প্যারামিটারটি (৫) গ্রহণ করা হচ্ছে এবং তাকে ২ দিয়ে গুণ করা হচ্ছে।


2. Currying (কারিিং)

Currying একটি ফাংশনাল প্রোগ্রামিং কনসেপ্ট, যেখানে একটি ফাংশনকে একাধিক আর্গুমেন্টের পরিবর্তে একেকটি আর্গুমেন্ট গ্রহণ করে একাধিক ফাংশনে ভেঙে দেওয়া হয়। Groovy তে আপনি একটি ফাংশনকে কপি বা “কারি” করে একে একে আর্গুমেন্ট পাস করতে পারেন। এটি কোডের পুনঃব্যবহারযোগ্যতা এবং পাঠযোগ্যতা উন্নত করে।

Currying উদাহরণ:

def add = { x, y -> x + y }

def curriedAdd = add.curry(5)  // 5 দিয়ে কারি করা হলো
println curriedAdd(3)  // Output: 8 (৫ এবং ৩ যোগফল)

এখানে, add ফাংশনটি দুইটি প্যারামিটার নেয়, তবে curry মেথড ব্যবহার করে আমরা 5 প্যারামিটারটি আগেই প্রদান করেছি, এবং পরে কেবল 3 প্যারামিটার পাস করে ফলাফল পেয়েছি।

Currying আরও জটিল উদাহরণ:

def multiply = { x, y, z -> x * y * z }

def curriedMultiply = multiply.curry(2, 3)
println curriedMultiply(4)  // Output: 24 (২ * ৩ * ৪)

এখানে, প্রথমে x এবং y এর জন্য আর্গুমেন্ট দেওয়া হলো এবং পরে z এর জন্য আর্গুমেন্ট দেওয়া হল। ফলস্বরূপ, আপনি এক এক করে আর্গুমেন্ট পাস করতে পারেন।


3. Composition (কম্পোজিশন)

Composition হল ছোট ছোট ফাংশন বা ক্লোজারের সমষ্টি তৈরি করে একটি বড় কার্যকারিতা অর্জন করা। Groovy তে ক্লোজারের সাহায্যে ফাংশন কম্পোজিশন খুব সহজে করা যায়। এখানে আপনি একাধিক ক্লোজার বা ফাংশনকে একত্রে ব্যবহার করতে পারেন যাতে তারা একে অপরের আউটপুটকে ইনপুট হিসেবে গ্রহণ করে।

Composition উদাহরণ:

def addOne = { x -> x + 1 }
def multiplyByTwo = { x -> x * 2 }

def composedFunction = addOne >> multiplyByTwo
println composedFunction(3)  // Output: 8 (৩ + ১ = ৪, ৪ * ২ = ৮)

এখানে, addOne এবং multiplyByTwo দুইটি ক্লোজার তৈরি করা হয়েছে, এবং >> অপারেটর দিয়ে তাদের কম্পোজ করা হয়েছে। প্রথমে addOne এক্সিকিউট হবে এবং তার আউটপুট multiplyByTwo ক্লোজারের ইনপুট হিসেবে যাবে।

Composition আরও জটিল উদাহরণ:

def square = { x -> x * x }
def subtractTwo = { x -> x - 2 }

def composedFunction = square >> subtractTwo
println composedFunction(5)  // Output: 23 (৫^২ = ২৫, ২৫ - ২ = ২৩)

এখানে, প্রথমে square ক্লোজার এক্সিকিউট হবে এবং তার আউটপুট দ্বিতীয় ক্লোজার subtractTwo তে পাঠানো হবে। এর ফলে আমরা একটি নতুন কম্পোজড ফাংশন তৈরি করতে সক্ষম হয়েছি।


Groovy তে Closures, Currying, এবং Composition এর সুবিধা

  1. আনন্দজনক এবং সহজ সিনট্যাক্স: Groovy তে এই কনসেপ্টগুলো ব্যবহার করার সিনট্যাক্স খুবই সহজ, যা কোড লেখাকে আরও মজাদার এবং দ্রুত করে তোলে।
  2. কোডের পুনঃব্যবহারযোগ্যতা: ক্লোজারের মাধ্যমে কোড পুনঃব্যবহার করা সহজ, এবং currying এর মাধ্যমে ফাংশনগুলোকে আরও নমনীয়ভাবে ব্যবহার করা যায়।
  3. ফাংশনাল প্রোগ্রামিং: Groovy ফাংশনাল প্রোগ্রামিংয়ের কনসেপ্টগুলো সমর্থন করে, যেমন ক্লোজার, currying এবং composition, যা কোডের পঠনযোগ্যতা এবং রক্ষণাবেক্ষণ উন্নত করে।
  4. কম্পোজেবল লজিক: ফাংশন কম্পোজিশনের মাধ্যমে আপনি ছোট ছোট এবং সহজ ফাংশনগুলিকে একত্রে ব্যবহার করে শক্তিশালী লজিক তৈরি করতে পারেন।

সারসংক্ষেপ

Groovy তে closures, currying, এবং composition এর মাধ্যমে আপনি ফাংশনাল প্রোগ্রামিংয়ের শক্তিশালী বৈশিষ্ট্য ব্যবহার করতে পারবেন। Closures আপনাকে ফাংশন বা কোড ব্লক তৈরি করে কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়, Currying আপনাকে আর্গুমেন্টগুলো ধাপে ধাপে পাস করতে সাহায্য করে, এবং Composition আপনাকে ছোট ছোট ফাংশনকে একত্রে কম্পোজ করে জটিল কার্যকরিতা তৈরি করতে সক্ষম করে। Groovy তে এই কনসেপ্টগুলো ব্যবহার করলে কোড আরও নমনীয়, পুনঃব্যবহারযোগ্য এবং সহজ হবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion