我需要在Haskell中製作一臺可樂自動售貨機,但我遇到了一些問題。我不明白,Haskell的非常好,所以我不知道發生了什麼未解決的頂級超載
main = start
return()
start = do putStr "\nSelect a coin\n1. R$0,25\n2. R$0,50\n3. R$1,00\n"
coin <- getChar;
case coin of
1 -> twentyFive
2 -> fifty
3 -> dispensed
otherwise -> do putStr "Select a valid option"
start
twentyFive = do putStr "\nSelect a coin\n1. R$0,25\n2. R$0,50\n3. R$1,00\n"
coin <- getChar;
case coin of
1 -> fifty
2 -> seventyFive
3 -> dispensed
otherwise -> do putStr "Select a valid option"
twentyFive
fifty = do putStr "\nSelect a coin\n1. R$0,25\n2. R$0,50\n3. R$1,00\n"
coin <- getChar;
case coin of
1 -> seventyFive
2 -> dispensed
3 -> dispensed
otherwise -> do putStr "Select a valid option"
fifty
seventyFive = do putStr "\nSelect a coin\n1. R$0,25\n2. R$0,50\n3. R$1,00\n"
coin <- getChar;
case coin of
1 -> dispensed
2 -> dispensed
3 -> dispensed
otherwise -> do putStr "Select a valid option"
seventyFive
dispensed = do putStr "-- Coke Dispensed --"
return()
但我收到此錯誤:
Unresolved top-level overloading
*** Binding : seventyFive
*** Outstanding context : Num Char
這是什麼意思?
你說過你是Haskell的新手,所以也許你不知道'return()'不是必須的,'getChar'結尾的';'也不需要。 – Artyom
你可能應該給你的函數顯式類型簽名,它可以使這樣的錯誤更清晰。 –