我有一些数据类型作为一个参数我有函数
data Event =
BasketCreated{basket:: Basket}
| ProductAdded{ basket::Basket, addProductInBasket :: Basket -> String -> Int -> Basket}
| DiscountAdded{ basket::Basket, addDiscountInBasket :: Basket -> Int -> Basket }
deriving (Show, Eq)
Run Code Online (Sandbox Code Playgroud)
不幸的是,因为我的数据类型包含函数deriving (Show, Eq)没有编译.
知道如何deriving (Show)使用函数来打印该数据类型
正如评论中已经提到的,Show如果数据类型包含函数,则无法派生实例.您可以做的最好的事情就是自己实现实例.例如:
instance Show Event where
show (BasketCreated x) = "BasketCreated " ++ show x
show (ProductAdded x _) = "ProductAdded " ++ show x
show (DiscountAdded x _) = "DiscountAdded " ++ show x
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
251 次 |
| 最近记录: |