Skip to content

Instantly share code, notes, and snippets.

@emctoo
Created June 6, 2012 14:00
Show Gist options
  • Save emctoo/2882025 to your computer and use it in GitHub Desktop.
Save emctoo/2882025 to your computer and use it in GitHub Desktop.
example of state monad
module Main where
import Control.Monad.State
type IntState = State Int
inc :: IntState ()
-- inc = get >>= put . (+1)
inc = do
v <- get
put (v + 1)
twice :: IntState ()
twice = modify ( * 2)
calculate = do
twice
inc
twice
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment