ReaderMonad

Run Settings
LanguageHaskell
Language Version
Run Command
module Main where import Control.Monad.Reader data Person = Pr { name :: String, age :: Integer, address :: String } type PersonReader = Reader Person String getName :: PersonReader getName = do n <- asks name return $ "Name: " ++ n getAge :: PersonReader getAge = do n <- asks age return $ "Age: " ++ show n getAddress :: PersonReader getAddress = do n <- asks address return $ "Address: " ++ n showPerson :: PersonReader showPerson = do x <- getName y <- getAge z <- getAddress return . unlines $ [x, y, z] main = putStrLn $ runReader showPerson $ (Pr "Someone" 32 "HOME")
Editor Settings
Theme
Key bindings
Full width
Lines