Skip to content

Instantly share code, notes, and snippets.

@hsavit1
Forked from egonSchiele/reader.hs
Created October 24, 2015 05:45
Show Gist options
  • Save hsavit1/4a21aa7e7f143a83c0b6 to your computer and use it in GitHub Desktop.
Save hsavit1/4a21aa7e7f143a83c0b6 to your computer and use it in GitHub Desktop.
Reader monad example
import Control.Monad.Reader
hello :: Reader String String
hello = do
name <- ask
return ("hello, " ++ name ++ "!")
bye :: Reader String String
bye = do
name <- ask
return ("bye, " ++ name ++ "!")
convo :: Reader String String
convo = do
c1 <- hello
c2 <- bye
return $ c1 ++ c2
main = print . runReader convo $ "adit"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment