在試圖理解Haskell中的實例時,我做了這個例子。整數部分工作正常,但不適用於Float實例。我認爲最好是創建一個Num類型的單個實例(以便在所有Num上使用正方形)。我想我必須將Num作爲約束添加到我的類聲明中,但我無法弄清楚實例的外觀。據我瞭解,對類的約束迫使任何實例屬於這種類型(根據約束)。Haskell。使用約束來定義類的實例
class Square a where
area :: a -> a
instance Square Integer where
area a = a*a
instance Square Float where
area a = a*a
'Square Float'實例應該可以正常工作。你遇到了什麼問題? – leftaroundabout
上面的代碼應該適用於Float。你應該只打電話,例如區域10.0 :: Float去除不明確性。 –