case Expressions এবং Guarded Expressions

Control Flow Statements (নিয়ন্ত্রণ প্রবাহ স্টেটমেন্টস) - হ্যাস্কেল (Haskell) - Computer Programming

382

Haskell এ Case Expressions এবং Guarded Expressions

Haskell এ case expressions এবং guarded expressions হল দুটি গুরুত্বপূর্ণ কনস্ট্রাক্ট যা কোডে শর্ত নির্ধারণ করার জন্য ব্যবহৃত হয়। এগুলি সাধারণত প্যাটার্ন ম্যাচিং এর সাথে সম্পর্কিত, এবং কোডের পড়তে সহজতা, পরিষ্কারতা, এবং কার্যকারিতা বৃদ্ধি করে।


1. Case Expressions (কেস এক্সপ্রেশন)

Case expressions হল একটি শর্তাধীন গঠন যা একাধিক প্যাটার্নের মধ্যে একটি নির্বাচন করে এবং সেই অনুযায়ী কার্যক্রম চালায়। এটি case কীওয়ার্ড ব্যবহার করে এবং সাধারণত প্যাটার্ন ম্যাচিং এর জন্য ব্যবহৃত হয়।

Case Expression এর সিনট্যাক্স:

case expression of
    pattern1 -> result1
    pattern2 -> result2
    ...
    _        -> defaultResult

এখানে:

  • expression: এটি সেই মান যা আমরা যাচাই করতে চাই।
  • pattern1, pattern2, ইত্যাদি: এগুলি বিভিন্ন প্যাটার্ন যেগুলির সাথে expression মিলিয়ে দেখা হবে।
  • defaultResult: এটি একটি ডিফল্ট মান, যা যদি কোন প্যাটার্নের সাথে মেলে না তবে ফেরত দেওয়া হবে। সাধারণত _ ব্যবহার করা হয়, যা "any value" এর প্রতিনিধিত্ব করে।

Case Expressions এর উদাহরণ:

-- একটি সংখ্যা যাচাই করার ফাংশন
checkNumber :: Int -> String
checkNumber x = case x of
    0 -> "Zero"
    1 -> "One"
    2 -> "Two"
    _ -> "Other"

এখানে, checkNumber ফাংশনটি ইনপুট সংখ্যার উপর ভিত্তি করে একটি স্ট্রিং ফেরত দেয়।

  • যদি x 0 হয়, তাহলে "Zero" ফেরত দেয়।
  • যদি x 1 হয়, তাহলে "One" ফেরত দেয়।
  • যদি x 2 হয়, তাহলে "Two" ফেরত দেয়।
  • অন্য যে কোনো মানের জন্য "Other" ফেরত দেয়, যেটি _ দ্বারা প্রতিনিধিত্ব করা হয়, অর্থাৎ ডিফল্ট প্যাটার্ন

উদাহরণ:

checkNumber 1  -- ফলস্বরূপ: "One"
checkNumber 4  -- ফলস্বরূপ: "Other"

2. Guarded Expressions (গার্ডেড এক্সপ্রেশন)

Guarded expressions হ'ল শর্তের জন্য একটি বিকল্প উপায়, যেখানে শর্তগুলির জন্য | (পাইপ সাইন) ব্যবহার করা হয়। এটি সাধারণত ফাংশনের বিভিন্ন শর্তাধীন শাখাগুলির জন্য ব্যবহৃত হয় এবং গার্ড (শর্ত) ব্যবহার করে প্রতিটি শাখার মান নির্ধারণ করে।

Guarded Expressions এর সিনট্যাক্স:

functionName argument
    | condition1 = result1
    | condition2 = result2
    | otherwise  = defaultResult

এখানে:

  • condition1, condition2: এগুলি শর্ত যা যাচাই করা হবে।
  • result1, result2: শর্ত পূর্ণ হলে ফলাফল।
  • otherwise: এটি একটি ডিফল্ট গার্ড যা সব শর্ত বিফল হলে কার্যকরী হয়। otherwise একটি বিশেষ কিওয়ার্ড যা True সমান।

Guarded Expressions এর উদাহরণ:

-- একটি সংখ্যা যাচাই করার গার্ডেড ফাংশন
checkNumberGuarded :: Int -> String
checkNumberGuarded x
    | x == 0    = "Zero"
    | x == 1    = "One"
    | x == 2    = "Two"
    | otherwise = "Other"

এখানে, checkNumberGuarded ফাংশনটি x এর মানের উপর ভিত্তি করে স্ট্রিং ফেরত দেয়।

  • প্রথমে চেক করা হয়, যদি x 0 হয় তবে "Zero" ফেরত দেয়।
  • এরপর, যদি x 1 হয়, তবে "One" ফেরত দেয়।
  • যদি x 2 হয়, "Two" ফেরত দেয়।
  • অন্য যে কোনো মানের জন্য "Other" ফেরত দেয়, যা otherwise দ্বারা চিহ্নিত।

উদাহরণ:

checkNumberGuarded 1  -- ফলস্বরূপ: "One"
checkNumberGuarded 4  -- ফলস্বরূপ: "Other"

3. Case Expressions এবং Guarded Expressions এর মধ্যে পার্থক্য

বৈশিষ্ট্যCase ExpressionsGuarded Expressions
শর্ত নির্ধারণcase ব্লক দিয়ে বিভিন্ন প্যাটার্নের সাথে মিলানো হয়।`
কোডের গঠনএকাধিক শাখা থাকে যা প্রতিটি প্যাটার্নের জন্য ফলস্বরূপ দেয়।একাধিক গার্ড থাকে যা প্রতিটি শর্তের জন্য ফলস্বরূপ দেয়।
ব্যবহারমূলত প্যাটার্ন ম্যাচিং ব্যবহার করা হয়।শর্ত এবং ফলাফল সহজে পরিষ্কারভাবে প্রদর্শন করতে ব্যবহৃত হয়।
ডিফল্ট ফলাফল_ ব্যবহার করে ডিফল্ট ফলাফল দেওয়া হয়।otherwise ব্যবহার করে ডিফল্ট ফলাফল দেওয়া হয়।
সুন্দরতা ও পাঠযোগ্যতাবড় শর্তযুক্ত ক্ষেত্রে আরও পরিষ্কার হতে পারে।অনেক সময় একাধিক গার্ড থাকতে পারে যা কোডের পাঠযোগ্যতা বৃদ্ধি করতে সহায়ক।

উপসংহার

Case expressions এবং Guarded expressions হল Haskell এ শর্ত নির্ধারণের জন্য দুটি শক্তিশালী কৌশল। Case expressions সাধারণত প্যাটার্ন ম্যাচিং ব্যবহারের জন্য উপযুক্ত, যেখানে Guarded expressions শর্তগুলো আরও পরিষ্কারভাবে উল্লেখ করতে সহায়ক। কোনটি ব্যবহার করা হবে তা নির্ভর করে কোডের কাঠামো এবং ব্যবহারকারী পছন্দের উপর, তবে উভয় ক্ষেত্রেই কোডের পাঠযোগ্যতা এবং কার্যকারিতা বাড়ানো সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...