1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import Control.Monad.State data Person = Person { id :: Int, name :: String } deriving Show type MyState = Int startState = 0 tick :: State MyState Int tick = do n <- get put (n+1) return n names = ["Adam","Barney","Charlie"] (persons, lastId) = (`runState` startState) $ do forM names $ \thisName -> do newId <- tick return $ Person newId thisName main = print persons |
aW1wb3J0IENvbnRyb2wuTW9uYWQuU3RhdGUKCmRhdGEgUGVyc29uID0gUGVyc29uIHsKICBpZCAgIDo6IEludCwKICBuYW1lIDo6IFN0cmluZwp9IGRlcml2aW5nIFNob3cKCnR5cGUgTXlTdGF0ZSA9IEludApzdGFydFN0YXRlID0gMAoKdGljayA6OiBTdGF0ZSBNeVN0YXRlIEludAp0aWNrID0gZG8KICBuIDwtIGdldAogIHB1dCAobisxKQogIHJldHVybiBuCgpuYW1lcyA9IFsiQWRhbSIsIkJhcm5leSIsIkNoYXJsaWUiXQoKKHBlcnNvbnMsIGxhc3RJZCkgPSAoYHJ1blN0YXRlYCBzdGFydFN0YXRlKSAkIGRvCiAgIGZvck0gbmFtZXMgJCBcdGhpc05hbWUgLT4gZG8KICAgICAgbmV3SWQgPC0gdGljawogICAgICByZXR1cm4gJCBQZXJzb24gbmV3SWQgdGhpc05hbWUKCm1haW4gPSBwcmludCBwZXJzb25z
prog.hs:1:7:
Could not find module `Control.Monad.State':
Use -v to see a list of the files searched for.
-
result: Compilation error (maybe you wish to see an example for Haskell)


