我在使用时以及何时不在我的代码中使用类型类时遇到一些困难.我的意思是 创建我自己的,当然不是使用已定义的类型类.通过示例(非常愚蠢的例子),我应该这样做:
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 = ...
Run Code Online (Sandbox Code Playgroud)
(显然,这是一个愚蠢的,不完整的例子).
但这有点用处,不是吗?为什么我不应该做一些简单的事情而只定义函数而不定义新的数据类型和类型类(带有它们的实例).
这个例子太简单了,但事实上,当我在github上浏览Haskell代码而不是仅定义函数时,我常常会看到类似的东西(新数据类型+类型类+实例).
那么,当我应该创建新的数据类型,类型类等时,我应该何时使用函数?
谢谢.
haskell ×1