data GroceryItem = CartItem ItemName Price Quantity | StockItem ItemName Price Quantity
makeGroceryItem :: String -> Float -> Int -> GroceryItem
makeGroceryItem name price quantity = CartItem name price quantity
Я хочу создать GroceryItem при использовании String или [String]
createGroceryItem :: [String] -> GroceryItem
createGroceryItem (a:b:c) = makeGroceryItem a b c
Вход будет в формате [ "Apple", "15.00", "5" ], который я сломал, используя функцию слов в haskell. Я получаю эту ошибку, которая, по моему мнению, связана с тем, что makeGroceryItem принимает Float и Int. Но как мне сделать b и c Float и Int соответственно?
*Type error in application
*** Expression : makeGroceryItem a read b read c
*** Term : makeGroceryItem
*** Type : String -> Float -> Int -> GroceryItem
*** Does not match : a -> b -> c -> d -> e -> f*