我有此代码:runState (do { put 5; return 'X' }) 1
,效果是:('X',5)
。我想在do块中提取结果-'X'
和当前状态-5
,然后对它们进行处理。但是,当我像使用get
函数时:z <- get
会将结果设置为当前状态,从而破坏了5
值。我该怎么做?
您可以这样做:
foo = do
x <- do
put 5
return 'X'
five <- get
{- ... whatever you want ... -}
在whatever you want
中,变量x
将为'X'
,变量five
将为5
。