从派生中隐藏字段(显示)

时间:2014-03-27 19:59:29

标签: haskell record

想象一下,我有一个包含许多字段的数据记录:

data DataRecord = DataRecord {
    field1 :: String,
    field2 :: String,
    ...
} deriving (Show)

是否可以隐藏deriving (Show)中的某些字段,或者是否必须为show实现我自己的DataRecord功能?

我的问题的原因:当我在deriving (Show)两个数据记录之间cyclic dependencies时,show函数会生成无限字符串。

1 个答案:

答案 0 :(得分:5)

Haskell 2010 report提到您的循环依赖关系不合适:

  

派生的ReadShow实例可能不适合某些用途。一些问题包括:

     
      
  • 这些实例无法打印或读取圆形结构。
  •   

所以你需要手动指定实例。