[Haskell-beginners] State Monad

Mike Meyer mwm at mired.org
Fri Apr 17 22:48:48 UTC 2015


On Fri, Apr 17, 2015 at 2:25 PM, Thomas Jakway <tjakway at nyu.edu> wrote:

> genThree listMax = do --highest index in the list
>         let listMin = 0 :: Int --lowest index in the list
>         generatedMin <- state randomR (listMin, listMax)
>         return generatedMin
>

What you're missing is a $:

The only chagne to our genThree functions is making it "state $" instead of
"state".


#!/usr/bin/env runhaskell

import System.Random
import Control.Monad.State

genThree listMax = do --highest index in the list
        let listMin = 0 :: Int --lowest index in the list
        generatedMin <- state $ randomR (listMin, listMax)
        return generatedMin

main = do
  gen <- newStdGen
  print $ evalState (genThree 10) gen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150417/c47c827c/attachment.html>


More information about the Beginners mailing list