Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://www.haskell.org/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. Re: Getting started with repa on MacOS (Konrad Hinsen) 2. State Monad - Not in scope: data constructor `State' (Hugo Ferreira) 3. Re: State Monad - Not in scope: data constructor `State' (Brent Yorgey) ---------------------------------------------------------------------- Message: 1 Date: Sat, 29 Oct 2011 12:12:55 +0200 From: Konrad Hinsen <konrad.hin...@fastmail.net> Subject: Re: [Haskell-beginners] Getting started with repa on MacOS To: Andres L?h <andres.l...@googlemail.com> Cc: beginners@haskell.org Message-ID: <4557fa2e-706f-462a-b1c0-54fe22d85...@fastmail.net> Content-Type: text/plain; charset=iso-8859-1 On 28 Oct, 2011, at 19:38 , Andres L?h wrote: > (1) The latest version of repa doesn't work with ghc-7.0.3 or > ghc-7.0.4. These provide base-4.3, and base is hardwired in GHC and > cannot be upgraded. The easiest way for you to get around this is to > explicitly say "cabal install repa-2.1.1.5". That works fine indeed. Thanks! Konrad. ------------------------------ Message: 2 Date: Sat, 29 Oct 2011 20:48:28 +0100 From: Hugo Ferreira <h...@inescporto.pt> Subject: [Haskell-beginners] State Monad - Not in scope: data constructor `State' To: beginners@haskell.org Message-ID: <4eac588c.4050...@inescporto.pt> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Hello, I am trying to use some State Monad code in order to learn about this. However in GHCi I cannot use the "State" constructor. import qualified Control.Monad.State >:{ | let fromStoAandS c | c `mod` 5 == 0 = ("foo",c+1) | | otherwise = ("bar",c+1) | :} > :t fromStoAandS >fromStoAandS :: Integral t => t -> ([Char], t) >:{ | let stateIntString = State fromStoAandS >Prelude Control.Monad.State| :} > ><interactive>:1:22: Not in scope: data constructor `State' I have found a message stating that this is not possible because their is "no State data constructor", it is only "defined to be a type alias". The author of the message then says we should use: http://hackage.haskell.org/packages/archive/transformers/latest/doc/html/Control-Monad-Trans-State-Lazy.html#v:state instead. Still lost however. So, how do I create the "Sate" above? TIA, Hugo F. ------------------------------ Message: 3 Date: Sat, 29 Oct 2011 16:09:52 -0400 From: Brent Yorgey <byor...@seas.upenn.edu> Subject: Re: [Haskell-beginners] State Monad - Not in scope: data constructor `State' To: beginners@haskell.org Message-ID: <20111029200952.ga14...@seas.upenn.edu> Content-Type: text/plain; charset=us-ascii On Sat, Oct 29, 2011 at 08:48:28PM +0100, Hugo Ferreira wrote: > Hello, > > I am trying to use some State Monad code > in order to learn about this. However in > GHCi I cannot use the "State" constructor. > > import qualified Control.Monad.State > > >:{ > | let fromStoAandS c | c `mod` 5 == 0 = ("foo",c+1) > | | otherwise = ("bar",c+1) > | :} > > :t fromStoAandS > >fromStoAandS :: Integral t => t -> ([Char], t) > > >:{ > | let stateIntString = State fromStoAandS > >Prelude Control.Monad.State| :} > > > ><interactive>:1:22: Not in scope: data constructor `State' > > I have found a message stating that this is not possible > because their is "no State data constructor", it is only "defined > to be a type alias". That is correct. State used to be defined directly; now it is just an alias for StateT s Identity. You don't really have to worry about what this means, but the point is that there is no longer a real State constructor. The author of the message then says we should use: > > http://hackage.haskell.org/packages/archive/transformers/latest/doc/html/Control-Monad-Trans-State-Lazy.html#v:state > > instead. Still lost however. > So, how do I create the "Sate" above? You simply replace 'State' by 'state', a function provided to act like the old State constructor. So you write let stateIntString = state fromStoAandS -Brent ------------------------------ _______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners End of Beginners Digest, Vol 40, Issue 47 *****************************************