Sto leggendo il capitolo di Monade in Real World Haskell (capitolo 14). Una funzione è defined come segue:Il motivo per cui MonadState viene messo e messo?
type RandomState a = State StdGen a
getRandom :: Random a => RandomState a
getRandom =
get >>= \gen ->
let (val, gen')= random gen in
put gen' >>
return val
Io non capisco lo scopo della get e mettere funzioni qui. Ho riscritto la funzione come segue che sembra fare la stessa cosa ed è più conciso:
getRandom2 :: Random a => RandomState a
getRandom2= State $ \ s -> random s
Quindi la mia domanda è: Qual è lo scopo di ottenere e mettere in generale?
Proprio in questo caso, o lo scopo di 'get' e' put' in generale? Il loro uso può essere spiegato più facilmente in quest'ultimo caso ... – kennytm
In generale; Modificherò la mia domanda. – CiscoIPPhone