Должен ли я использовать Typeclasses или нет?
У меня есть некоторые трудности, чтобы понять, когда использовать, а когда не использовать класс типов в моем коде. Я имею в видусоздать свой собственный, и неиспользовать уже определенный Типовые классы, конечно. К примеру (очень глупый пример), я должен сделать:
data Cars = Brakes | Wheels | Engine
data Computers = Processor | RAM | HardDrive
class Repairable a where
is_reparaible :: a -> Bool
instance Repairable Cars where
is_repairable (Brakes) = True
is_repairable (Wheels) = False
is_repairable (Engine) = False
instance Repairable Computers where
is_repairable (Processor) = False
is_repairable (RAM) = False
is_repairable (HardDrive) = True
checkState :: (Reparaible a) => a -> ...
checkState a = ...
(Очевидно, это глупый, неполный пример).
Но это много для небольшого использования, нет? Почему я не долженДелать что-то простое и определять только функции без определения новых типов данных и классов типов (с их экземплярами).
Этот пример слишком прост, но на самом деле я часто вижу что-то подобное (новые типы данных + классы типов + экземпляры), когда я просматриваю код на Haskell на github вместо определения только функций.
Итак, когда мне следует создавать новые типы данных, классы типов и т. Д. И когда мне следует использовать функции?
Благодарю.