Je suis en train de lire le chapitre Monades dans Real World Haskell (chapitre 14). Une fonction est defined comme suit:La raison de MonadState obtenir et mettre?
type RandomState a = State StdGen a
getRandom :: Random a => RandomState a
getRandom =
get >>= \gen ->
let (val, gen')= random gen in
put gen' >>
return val
Je ne comprends pas vraiment le but de l'obtenir et de mettre les fonctions ici. Je Réécriture de la fonction suivante qui semble faire la même chose et est plus concis:
getRandom2 :: Random a => RandomState a
getRandom2= State $ \ s -> random s
Ma question est: Quel est le but de faire et de mettre en général?
Juste dans ce cas, ou le but de 'get' et' put' en général? Leur utilisation peut être plus facilement expliquée dans ce dernier cas ... – kennytm
En général; Je vais éditer ma question. – CiscoIPPhone