0
부분적으로이 부분은 http://www.haskell.org/haskellwiki/State_Monad 입니다. 그러나 c 및 f의 초기 상태를 어떻게 정의 할 지 명확하지 않습니다.State Monad에서 초기 상태를 어떻게 정의합니까?
IORefs와 함께 작동하지만 글로벌 변경 가능 데이터가 필요하지 않습니다.
plusOne n = return (n+1)
당신이있어 이후 : StateT
작업 할 때
increment :: StateT Integer IO Integer
increment = do
n <- get
put (n+1)
return n
plusOne :: Integer -> IO Integer
plusOne n = execStateT increment n
printTChan mtch = do
forever $ do
m <- atomically $ readTChan mtch
case m of
"ping" -> plusOne c
_ -> plusOne f
print (c)
'runState'을 보았습니까? – Ingo