[Haskell-cafe] seems like I'm on the wrong track
Michael Mossey
mpm at alumni.caltech.edu
Tue Dec 1 21:28:04 EST 2009
Daniel Fischer wrote:
>> getNumber :: String -> AssignedNumbers -> (Int,AssignedNumbers)
>
> Yeah, that screams State Monad.
>
Hi, thanks for all the advice.
I was hoping my AssignedNumbers "class" would be useful with many data
structures. In other words I would have
data State1 = State1 { a :: AssignedNumbers, b :: AssignedNumbers, ... }
data State2 = State2 { c :: AssignedNumbers, d :: AssignedNumbers, ... }
func1 :: State State1 Int
func1 = do
... something using a and b ...
func2 :: State State2 Int
func2 = do
... something using c and d ...
So I thought maybe I could defined a function like
nextNumber :: MonadState s m => (s -> AssignedNumbers) -> (AssignedNumbers
-> s) -> m Int
nextNumber retreive putBack = ...
and have it be useful in both "State State1 a" and "State State2 a" monads,
but defining the retrieve and putBack functions isn't pretty.
I will try to grok Robert's reply also. Maybe he has something addressing this.
Mike
More information about the Haskell-Cafe
mailing list