Ввод на Haskell и передача значений в функции - PullRequest
1 голос
/ 18 марта 2010
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 я хочу отправить номер

это дает мне эту ошибку

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

, пожалуйста, помогите мне

Ответы [ 2 ]

5 голосов
/ 18 марта 2010

num является String. buyItem ожидает Int. Вам нужно преобразовать String в Int, например, используя read.

buyItem currentStockBase art (read num)

Редактировать: String означает [Char] --- надеюсь, это означает, что сообщение об ошибке имеет больше смысла для вас.

2 голосов
/ 18 марта 2010

Это потому что num это строка? Попробуйте разобрать его с помощью read:

let test= buyItem currentStockBase art (read num)
...