8

Haskell で、コンポーネントの値によってデータ型を制限する方法はありますか? 私は例を起草しました。チェッカー ゲームがあるとします。チェッカーは、黒または白のいずれかのタイプです。

data CheckerType = BlackChecker | WhiteChecker deriving (Eq)

data Checker = Checker CheckerType Int

チェッカー ゲームのゲーム ボードには、ブラック チェッカーとホワイト チェッカーのセットが含まれます。

data GameBoard = GameBoard ([Checker]) ([Checker])

前の宣言で、最初の [Checker] のチェッカーを CheckerType 黒にし、2 番目のチェッカーを反対のタイプにする方法はありますか?

4

1 に答える 1