하스켈에서 콜라 자동 판매기를 만들어야하지만 몇 가지 문제가 있습니다. 나는 아주 잘 하스켈을 이해하지 못하는, 그래서 해결되지 않은 최상위 오버로드
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
이 무슨 뜻입니까?
당신은 하스켈을 처음 사용한다고 말했기 때문에'return()'이 필요하지 않다는 것을 모르고'getChar'의 끝에있는';'도 필요하지 않습니다. – Artyom
함수에 명시적인 형식 시그니처를 지정해야합니다. 이렇게하면 오류가 더 명확해질 수 있습니다. –