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

但我想将“Akon”发送到艺术,20 我想发送 num

它给了我这个错误

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

请帮我

4

2 回答 2

5

num是一个StringbuyItem期待一个Int. 您需要将 String 转换为 Int,例如使用read.

buyItem currentStockBase art (read num)

编辑:String意味着[Char]---希望这意味着错误消息现在对您更有意义。

于 2010-03-18T11:59:51.760 回答
2

是因为 num 是一个字符串吗?尝试解析它read

let test= buyItem currentStockBase art (read num)
于 2010-03-18T11:59:15.730 回答