[Haskell-beginners] State monad

Britt Anderson britt.uwaterloo at gmail.com
Mon Feb 14 19:23:43 CET 2011


Actually, I can load the module and I have mtl. I just don't understand why
I can use State as a data constructor, but the inverse of runState, i.e.
state works just fine. Has this library/package been reconfigured from when
most people were writing tutorials?

On Mon, Feb 14, 2011 at 1:19 PM, Mihai Maruseac <mihai.maruseac at gmail.com>wrote:

> On Mon, Feb 14, 2011 at 8:18 PM, Mihai Maruseac
> <mihai.maruseac at gmail.com> wrote:
> > On Mon, Feb 14, 2011 at 8:11 PM, Britt Anderson
> > <britt.uwaterloo at gmail.com> wrote:
> >> Many of the tutorials on the state monad seem to suggest that you can
> use
> >> State as a data constructor, but I can't get this to work. E.g. in ghci
> >> after :m Control.Monad.State I can
> >>
> >> let f = (\x -> (x,x))
> >> let y = state f
> >>
> >> but if I,
> >>
> >> let z = State f
> >>
> >> I get an error message: Not in scope: data constructor `State'.
> >>
> >> Can someone please explain?
> >>
> >> Thanks, Britt
> >>
> >>
> >
> > GHCi doesn't load all Haskell modules by default. It only loads
> > Prelude. You'll have to load them by hand. Use
> >
> > :m +Control.Monad.State
> >
>
> Also, see if you have the mtl library installed (or Transformers).
>
> --
> Mihai
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20110214/914c044c/attachment.htm>


More information about the Beginners mailing list