On Wed, Oct 21, 2009 at 10:34:47AM -0700, michael rice wrote: > There's a thread on the plt-scheme list about creating a function of NO > arguments named NEXT that just returns the number of times it's been called, > a piece of cake in Scheme, but how would one do this in Haskell? Would the > best approach be to use a State monad?
Yes, a State monad would be the way to go. Such a function cannot have type () -> Int in Haskell, because a function with type () -> Int must be pure: in particular it would always have to give the same output. So giving the function the type () -> State Int Int (or really, just State Int Int) makes explicit the fact that evaluating it has a state effect. -Brent _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe