স্কালা ফাংশন ডেফিনিশন এবং টাইপ

স্কালা ফাংশনাল প্রোগ্রামিং - স্কালা প্রোগ্রামিং (Scala Programming) - Computer Programming

258

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


১. স্কালা ফাংশন ডেফিনিশন (Function Definition)

স্কালায় ফাংশন ডিফাইন করা হয় def কিওয়ার্ড ব্যবহার করে। ফাংশনের মধ্যে ইনপুট আর্গুমেন্ট (parameters) এবং আউটপুট রিটার্ন টাইপ (return type) উল্লেখ করা হয়।

সাধারণ ফাংশন ডেফিনিশন:

def functionName(parameter1: Type1, parameter2: Type2): ReturnType = {
  // function body
  return someValue
}

উদাহরণ:

def add(a: Int, b: Int): Int = {
  return a + b
}

val result = add(5, 3)
println(result)  // Output: 8

এখানে:

  • add একটি ফাংশন, যা দুটি Int টাইপের প্যারামিটার গ্রহণ করে এবং একটি Int রিটার্ন করে।
  • a এবং b হল প্যারামিটার, এবং Int রিটার্ন টাইপ।
  • return a + b দ্বারা যোগফল রিটার্ন করা হচ্ছে।

২. ফাংশন টাইপ (Function Types)

স্কালায় ফাংশন টাইপের ধারণা খুবই গুরুত্বপূর্ণ, বিশেষত যখন আপনি ফাংশনকে এক্সপ্রেশন বা প্যারামিটার হিসেবে ব্যবহার করেন। ফাংশন টাইপ সাধারণভাবে একটি আর্গুমেন্টের টাইপ এবং রিটার্ন টাইপের সংমিশ্রণ।

ফাংশন টাইপের সিনট্যাক্স:

(parameter1: Type1, parameter2: Type2) => ReturnType

উদাহরণ:

val add = (a: Int, b: Int) => a + b

println(add(5, 3))  // Output: 8

এখানে:

  • add হল একটি ফাংশন যা দুটি Int ইনপুট নেয় এবং তাদের যোগফল রিটার্ন করে।
  • ফাংশনের টাইপের সিনট্যাক্স: (Int, Int) => Int

৩. ফাংশন আর্গুমেন্টের টাইপ নির্ধারণ (Function Argument Types)

ফাংশনে প্যারামিটারগুলির টাইপ স্পষ্টভাবে উল্লেখ করতে হবে, যা স্কালায় টাইপ সেফটি (type safety) বজায় রাখে।

উদাহরণ:

def multiply(a: Int, b: Int): Int = {
  a * b
}

val result = multiply(4, 5)
println(result)  // Output: 20

এখানে:

  • a এবং b হল ইনপুট প্যারামিটার, এবং তাদের টাইপ হল Int
  • ফাংশনটির রিটার্ন টাইপ Int

৪. ফাংশন আর্গুমেন্টের ডিফল্ট মান (Default Arguments)

স্কালায় ফাংশন আর্গুমেন্টের জন্য ডিফল্ট মানও প্রদান করা যায়। এর মাধ্যমে আপনি কিছু প্যারামিটার না দিলেও ফাংশনটি সঠিকভাবে কাজ করবে।

উদাহরণ:

def greet(name: String, greeting: String = "Hello"): Unit = {
  println(s"$greeting, $name!")
}

greet("Alice")           // Output: Hello, Alice!
greet("Bob", "Goodbye")  // Output: Goodbye, Bob!

এখানে:

  • greeting প্যারামিটারটির একটি ডিফল্ট মান "Hello" দেওয়া হয়েছে।
  • যখন greet("Alice") কল করা হয়েছে, তখন ডিফল্ট মান "Hello" ব্যবহার করা হয়েছে।

৫. ভ্যারিএবল আর্গুমেন্ট (Variable Arguments)

ফাংশনে আপনি ভ্যারিএবল (অসংখ্য) আর্গুমেন্ট গ্রহণ করতে পারেন, যার জন্য স্কালা varargs ব্যবহার করে। এটি ফাংশনে একাধিক আর্গুমেন্ট পাস করার সুবিধা দেয়।

উদাহরণ:

def sum(numbers: Int*): Int = {
  numbers.sum
}

println(sum(1, 2, 3, 4))  // Output: 10
println(sum(5, 10))        // Output: 15

এখানে:

  • numbers: Int* দ্বারা ভ্যারিএবল সংখ্যক Int প্যারামিটার গ্রহণ করা হচ্ছে।

৬. হাইয়ার অর্ডার ফাংশন (Higher-Order Functions)

স্কালায় ফাংশন উচ্চতর অর্ডারের হতে পারে, অর্থাৎ ফাংশন অন্য ফাংশনকে আর্গুমেন্ট হিসেবে গ্রহণ করতে পারে বা রিটার্ন করতে পারে।

উদাহরণ:

def applyFunction(f: Int => Int, x: Int): Int = {
  f(x)
}

val result = applyFunction(x => x * 2, 4)
println(result)  // Output: 8

এখানে:

  • applyFunction একটি হাইয়ার অর্ডার ফাংশন যা অন্য একটি ফাংশনকে আর্গুমেন্ট হিসেবে গ্রহণ করছে।
  • x => x * 2 একটি ফাংশন যা x এর দ্বিগুণ করে।

৭. প্যারামিটার ছাড়া ফাংশন (Functions Without Parameters)

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

উদাহরণ:

def sayHello(): Unit = {
  println("Hello, Scala!")
}

sayHello()  // Output: Hello, Scala!

এখানে:

  • sayHello কোনো প্যারামিটার ছাড়াই একটি Unit রিটার্ন করে এবং কনসোলে "Hello, Scala!" প্রিন্ট করে।

৮. ফাংশন টাইপের উদাহরণ (Function Type Example)

স্কালায় ফাংশনের টাইপের সাহায্যে আপনি নির্ধারণ করতে পারেন একটি ফাংশন কীভাবে কাজ করবে।

val multiply: (Int, Int) => Int = (a, b) => a * b
val result = multiply(3, 4)
println(result)  // Output: 12

এখানে:

  • multiply একটি ফাংশন যা দুটি Int টাইপের ইনপুট নেয় এবং একটি Int রিটার্ন করে।

সারাংশ

স্কালায় ফাংশন ব্যবহারের ধারণা খুবই শক্তিশালী এবং নমনীয়। স্কালা ফাংশনাল প্রোগ্রামিংয়ের সুবিধা প্রদান করে এবং ফাংশনগুলোকে প্রথম শ্রেণির নাগরিক হিসেবে ব্যবহার করা যায়। স্কালার ফাংশন ডেফিনিশন এবং টাইপ ব্যবহারে উচ্চতর সুরক্ষা এবং কার্যকারিতা পাওয়া যায়, যা সফটওয়্যার ডেভেলপমেন্টে বেশ সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...