2010-03-18 41 views
1
putStrLn "Enter the Artist Name" 
    art <- getLine 
putStrLn "Enter the Number of CD's" 
    num <- getLine 

let test= buyItem currentStockBase art num 
    printListIO (showcurrentList test) 

我必須通過對buyItem值是哈斯克爾輸入和值傳遞給函數

buyItem currentStockBase "Akon" 20 

,但我想「阿肯」發送到藝術和20我想送NUM

它給了我這個錯誤

ERROR file:.\Project2.hs:126 - Type error in application 
*** Expression  : buyItem currentStockBase art num 
*** Term   : num 
*** Type   : [Char] 
*** Does not match : Int 

請幫我

+7

幫你一個忙,看看http://book.realworldhaskell.org/和http://learnyouahaskell.com/。我敢打賭,它不會像在這裏一直陷入困境並等待答案那樣令人沮喪。 – stefaanv 2010-03-18 11:58:51

回答

2

是因爲num是一個字符串嗎?試着用read解析它:

let test= buyItem currentStockBase art (read num) 
5

numStringbuyItem正在等待Int。您需要將字符串轉換爲Int,例如通過使用read

buyItem currentStockBase art (read num) 

編輯:String意味着[Char] ---但願這意味着該錯誤消息現在更有意義給你。