當我嘗試執行使用類型參數調用數據的此函數時,出現錯誤。Haskell中的類型參數問題
data Car a b c = Car { company :: a
, model :: b
, year :: c
} deriving (Show)
myCar :: Car -> String
myCar (Car {company = c, model = m, year = y}) = "This " ++ C++ " was made in " ++ m ++ " " ++ show (y)
我收到此錯誤
* Expecting three more arguments to `Car'
Expected a type, but `Car' has kind `* -> * -> * -> *'
* In the type signature:
myCar :: Car -> String
它的工作原理,如果我提前使用類型的參數,如下面
data Car = Car { company :: String
, model :: String
, year :: Int
} deriving (Show)
感謝。
「我得到這個錯誤」正確的是,因爲寫入的代碼沒有任何意義。 「如果我不使用下面的類型參數,它就可以工作」也完全可以,這絕對是正確的。所以有什麼問題? –
道歉,我已經更新了這個問題,它在我嘗試使用數據類型時起作用,但在嘗試使用類型參數時不起作用。 – Srinivas
再次,問題是什麼?你期望'公司'或'模型'不是'字符串','年份'不是'Int'的東西嗎?爲什麼? –