我是Haskell的初学者,我刚刚开始围绕Monads,但我还没有真正得到它.我正在写一个游戏,包括询问用户输入和响应.这是我的函数的简化版本:
getPoint :: IO Point
getPoint = do
putStr "Enter x: "
xStr <- getLine
putStr "Enter y: "
yStr <- getLine
return $ Point (read xStr) (read yStr)
completeUserTurn :: (Board, Player) -> IO (Board, Player)
completeUserTurn (board, player) = do
putStr $ "Enter some value: "
var1 <- getLine
putStr $ "Enter another value: "
var2 <- getLine
putStr $ "Enter a point this time: "
point <- getPoint
if (... the player entered legal values ...) then …Run Code Online (Sandbox Code Playgroud)