目的は、学校の課題として Haskell で Nim のゲームをコーディングすることです。私は Haskell を初めて使用し、入力を読み取ろうとすると奇妙な動作をします。
目標は、2 つの整数を読み取ることです。最初のメッセージを出力してプロンプトを出してから 2 番目のメッセージに進む代わりに、2 つのメッセージを出力するだけで、適切な入力を行うことができません。ここで何が問題なのですか?
type Board = [Int] -- The board
type Heap = Int -- id of heap
type Turn = (Int, Int) -- heap and number of stars to remove
readInt :: String -> IO Int
readInt msg = do putStr (msg ++ "> ")
inp <- getChar
let x = ord inp
return x
readTurn :: Board -> IO(Turn)
readTurn b = do heap <- readInt "Select heap:"
amt <- readInt "Select stars:"
print heap
print amt
return(heap, amt)