如何定义一个Haskell类型,它是多个值之一

时间:2019-01-31 04:51:14

标签: haskell

我有3 data的定义:

data ActionCard = ActionCard {
  actionCardCost :: Int,
  plusActions :: Int,
  plusBuys :: Int,
  plusCards :: Int,
  plusCoins :: Int
} deriving (Show)

data TreasureCard = TreasureCard {
  treasureCardCost :: Int,
  treasureCardValue :: Int
} deriving (Show)

data VictoryCard = VictoryCard {
  victoryCardCost :: Int,
  victoryCardValue :: Int
} deriving (Show)

我想定义Card,使得任何位置Card类型被使用,这意味着值是的ActionCardTreasureCard,或{{1的实例}}。

基本上我希望VictoryCard是这三个人都从OOP借用的接口。

我希望能够写

Card

0 个答案:

没有答案