コードで型クラスを使用する場合と使用しない場合を理解するのが難しい場合があります。もちろん、独自の を作成し、既に定義されている型クラスを使用しないことを意味 します。例(非常にばかげた例)によって、私はすべきですか:
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 = ...
(明らかに、これは愚かで不完全な例です)。
しかし、これは少しの使用のためにたくさんありますよね?新しいデータ型と型クラスを (それらのインスタンスと共に) 定義せずに関数を定義するだけの単純なことをすべきではないのはなぜですか。
この例は単純すぎるのですが、実際、関数を定義するだけでなく、github で Haskell コードを参照すると、そのようなもの (新しいデータ型 + 型クラス + インスタンス) をよく見かけます。
では、いつ新しいデータ型、型クラスなどを作成する必要があり、いつ関数を使用する必要がありますか?
ありがとう。