Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PLT-A4 IO Monad

Avatar for kanaya kanaya
August 02, 2025

PLT-A4 IO Monad

Avatar for kanaya

kanaya

August 02, 2025
Tweet

More Decks by kanaya

Other Decks in Education

Transcript

  1. pineapple.cc toUpper :: Char -> Char x :: [Char] y

    :: [Char] x = “Hello, world.” y = map toUpper x
  2. pineapple.cc x’ :: IO [Char] y’ :: IO [Char] x’

    = getLine y’ = map toUpper x’ — ERROR!! toUpper :: Char -> Char x :: [Char] y :: [Char] x = “Hello, world.” y = map toUpper x
  3. pineapple.cc x’ :: IO [Char] y’ :: IO [Char] x’

    = getLine y’ = fmap (map toUpper) x’ toUpper :: Char -> Char x :: [Char] y :: [Char] x = “Hello, world.” y = map toUpper x
  4. pineapple.cc x’ :: IO [Char] y’ :: IO [Char] x’

    = getLine y’ = (toUpper <$>) <$> x’ toUpper :: Char -> Char x :: [Char] y :: [Char] x = “Hello, world.” y = toUpper <$> x ผղ