関数型プログラミング言語Haskell Part13
■ このスレッドは過去ログ倉庫に格納されています
0882デフォルトの名無しさん
2011/02/16(水) 19:57:54たぶん、理解しているんだろうけど、main の 最後の print がオレを不安にさせる。
"OldHP: ..." を表示させたいだけなら、それはいらないよ。
それと、addHP の 最後の return () もいらない。
そのほか、オレなら、こういう感じに書くかな。
addHP n = do
Player m <- get
liftIO $ putStrLn $ "OldHP: " ++ show m
put $ Player $ n + m
>>881
MTL のバージョン、古くない?
オレの環境(2.0.1.0)だと、Stateデータコンストラクタはエクスポートされていないみたいなんだけど。
で、pgen の >>= は >> に変えられる。
+> は オレならこう書く:
(+>) :: State Player (IO ()) -> Int -> State Player (IO ())
st +> n = state k
where
act = putStrLn $ "hp +" ++ show n
k s = let (act', Player i) = runState st s
in (act' >> act, Player $ i + n)
■ このスレッドは過去ログ倉庫に格納されています