
Is your intent is to call main function? How do you compile this module, is
it part of a bigger project, or just a single-file program? If single-file
-- rename main to something else, then create a main function which has a
type "main :: IO ()", and put something like:
main :: IO ()
main = print (mainRoutine 10 5)
It'll call mainRoutine with 10 and 5 args and print its result. You can
then run it with "runhaskell MyProg.hs"
On Sun, Dec 13, 2015 at 7:14 PM, Imants Cekusins
This snippet increments integer n times using state monad.
How to call: main 10 5
module BasicState where
import Control.Monad.State.Strict import Debug.Trace
type St a = State a a
-- caller is not aware that main uses state -- mai is a pure function main :: Int -> Int -> Int main start0 repeat0 = evalState (repeatN repeat0) start0
-- state-passing computation repeatN :: Int -> St Int repeatN n0 -- repeat n times | n0 < 1 = get -- current state | otherwise = do withState pureStateModifier get -- update state repeatN $ n0 - 1 -- recurse
-- state unaware modifier function pureStateModifier :: Int -> Int pureStateModifier = (+ 1) _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners