"Albert Y. C. Lai" <[email protected]> writes: > On 12-09-30 06:33 PM, Jake McArthur wrote: >> When discussing monads, at least, a side effect is an effect that is >> triggered by merely evaluating an expression. A monad is an interface >> that decouples effects from evaluation. > > I don't understand that definition. Or maybe I do subconsciously. > > I have > > s :: State Int () > s = do { x <- get; put (x+1) } > > Is there an effect triggered by merely evaluating s? > > I have > > m :: IO () > m = if True then putStrLn "x" else putChar 'y' > > Is there an effect triggered by merely evaluating m? > > What counts as "evaluate"?
Evaluation! Consider m `seq` 42. m is evaluated, but to no effect. -- Jón Fairbairn [email protected] _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
