是否可以在Haskell中打印state monad的结果?如何在Haskell中打印State Monad的结果?
我试图了解状态monads,并在一本书中我一直在提供下面的代码来创建一个状态monad,但我正在努力处理这个主题,因为我无法直观地查看过程,即看到结尾结果。
newtype State s a = State { runState :: s -> (a,s)}
instance Monad (State s) where
return x = State $ \s -> (x,s)
(State h) >>= f = State $ \s -> let (a, newState) = h s
(State g) = f a
in g newState
“如何打印状态单子”与“如何打印状态单子的结果”是完全不同的问题,至少如果我将前者理解为打印_a“状态”action_,后者将其打印为_打印一次执行“状态”动作的结果。你的意思是? – leftaroundabout
@leftaroundabout结果抱歉。 –