Estoy leyendo el capítulo de Mónadas en Real World Haskell (capítulo 14). Una función es defined de la siguiente manera:¿El motivo de MonadState obtener y poner?
type RandomState a = State StdGen a
getRandom :: Random a => RandomState a
getRandom =
get >>= \gen ->
let (val, gen')= random gen in
put gen' >>
return val
yo no entiendo muy bien el propósito de la funciones GET y PUT aquí. Reescribí la función como continuación de lo cual parece hacer lo mismo y es más concisa:
getRandom2 :: Random a => RandomState a
getRandom2= State $ \ s -> random s
Así que mi pregunta es: ¿Cuál es el propósito de conseguir y poner en general?
¿Solo en este caso, o el propósito de 'get' y' put' en general? Su uso se puede explicar más fácilmente en este último caso ... – kennytm
En general; Voy a editar mi pregunta. – CiscoIPPhone