Haskell এ Standard Input এবং Output

Input/Output Operations (ইনপুট/আউটপুট অপারেশন) - হ্যাস্কেল (Haskell) - Computer Programming

281

Haskell এ Standard Input এবং Output

Haskell এ Standard Input এবং Standard Output এর মাধ্যমে ইউজার থেকে ইনপুট নেওয়া এবং আউটপুট প্রদর্শন করা যায়। যেহেতু Haskell একটি পিওর ফাংশনাল ভাষা এবং ইমিউটেবল ডেটার উপর কাজ করে, তাই ইনপুট এবং আউটপুট পরিচালনা করতে Haskell এ IO টাইপ ব্যবহার করা হয়।


Standard Output

Standard Output এর মাধ্যমে প্রোগ্রামের আউটপুট প্রদর্শন করা হয়। Haskell এ প্রাথমিক আউটপুট প্রদানের জন্য সাধারণত print এবং putStrLn ফাংশনগুলো ব্যবহার করা হয়।

1. putStrLn

putStrLn একটি String ইনপুট নেয় এবং তা প্রিন্ট করে, শেষে একটি নতুন লাইন যোগ করে।

উদাহরণ:

main :: IO ()
main = do
    putStrLn "Hello, Haskell!"  -- আউটপুট: Hello, Haskell!

2. print

print একটি Show টাইপের ডেটা গ্রহণ করে এবং তা String আকারে কনভার্ট করে আউটপুট প্রদর্শন করে। এটি সংখ্যাসহ অন্যান্য ডেটা টাইপের জন্যও ব্যবহারযোগ্য।

উদাহরণ:

main :: IO ()
main = do
    print 42             -- আউটপুট: 42
    print [1, 2, 3, 4]   -- আউটপুট: [1,2,3,4]

Standard Input

Standard Input এর মাধ্যমে ইউজার থেকে ইনপুট নেওয়া হয়। Haskell এ ইনপুট নেওয়ার জন্য getLine এবং getChar ফাংশন ব্যবহার করা হয়।

1. getLine

getLine একটি সম্পূর্ণ লাইন ইনপুট হিসেবে গ্রহণ করে এবং এটি একটি IO String টাইপের মান রিটার্ন করে।

উদাহরণ:

main :: IO ()
main = do
    putStrLn "Enter your name:"
    name <- getLine
    putStrLn ("Hello, " ++ name ++ "!")

এখানে, getLine ইউজারের নাম ইনপুট হিসেবে গ্রহণ করে এবং name এ সংরক্ষণ করে, তারপর সেই নামের সাথে Hello মেসেজ প্রিন্ট করে।

2. getChar

getChar ইনপুট হিসেবে একটি অক্ষর গ্রহণ করে এবং এটি একটি IO Char টাইপের মান রিটার্ন করে।

উদাহরণ:

main :: IO ()
main = do
    putStrLn "Enter a character:"
    char <- getChar
    putStrLn ("\nYou entered: " ++ [char])

এখানে, getChar একটি অক্ষর ইনপুট হিসেবে গ্রহণ করে এবং char এ সংরক্ষণ করে, তারপর সেই অক্ষর প্রদর্শন করে।


পূর্ণাঙ্গ উদাহরণ: ইনপুট নিয়ে প্রোগ্রাম চালানো

নিচে একটি উদাহরণ দেওয়া হলো, যেখানে ইউজারের কাছ থেকে দুটি সংখ্যা ইনপুট নিয়ে তাদের যোগফল প্রদর্শন করা হয়েছে।

main :: IO ()
main = do
    putStrLn "Enter first number:"
    input1 <- getLine
    putStrLn "Enter second number:"
    input2 <- getLine
    let number1 = read input1 :: Int
    let number2 = read input2 :: Int
    let sum = number1 + number2
    putStrLn ("The sum is: " ++ show sum)

এখানে,

  • getLine দুটি ইনপুট গ্রহণ করে, যা স্ট্রিং আকারে থাকে।
  • read ফাংশন ব্যবহার করে স্ট্রিংগুলিকে Int টাইপে রূপান্তর করা হয়।
  • তারপর যোগফল sum এ সংরক্ষণ করা হয় এবং show ফাংশনের মাধ্যমে তা আউটপুট হিসেবে প্রদর্শন করা হয়।

do নোটেশন এবং IO অপারেশন

Haskell এ do নোটেশন ব্যবহার করে একাধিক IO অপারেশন পরপর লেখা যায়। do ব্লকের প্রতিটি লাইন একটি পৃথক IO অপারেশন এবং এগুলো ক্রমান্বয়ে সম্পন্ন হয়।

উদাহরণ:

main :: IO ()
main = do
    putStrLn "Enter your age:"
    age <- getLine
    let ageNum = read age :: Int
    putStrLn ("In five years, you will be " ++ show (ageNum + 5) ++ " years old.")

এখানে,

  • প্রথমে getLine ইউজারের বয়স ইনপুট নেয়।
  • read ফাংশনের মাধ্যমে স্ট্রিংকে Int তে রূপান্তর করা হয়।
  • তারপর, পাঁচ বছর পরের বয়স হিসাব করে আউটপুট দেওয়া হয়।

উপসংহার

Haskell এ Standard Input এবং Standard Output প্রোগ্রামের সঙ্গে ইউজারের যোগাযোগের জন্য ব্যবহৃত হয়। putStrLn, print, getLine, এবং getChar এর মতো ফাংশনগুলো ব্যবহার করে আমরা সহজে ইনপুট নিয়ে আউটপুট প্রদর্শন করতে পারি। do নোটেশন ব্যবহার করে একাধিক IO অপারেশন একত্রে লেখা সম্ভব, যা প্রোগ্রামিংকে আরও সহজ এবং ধারাবাহিক করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...