假设我有一个包含很多字段的数据记录:
data DataRecord = DataRecord {
field1 :: String,
field2 :: String,
...
} deriving (Show)
是否可以从 deriving (Show)
中隐藏一些字段,或者必须为 DataRecord
实现我自己的 show
函数?
我的问题原因: 当我有 cyclic dependencies在两个数据记录之间都使用 deriving (Show)
show
函数将生成一个无限字符串。
最佳答案
Haskell 2010 report提到你的循环依赖是不合适的情况:
The derived
Read
andShow
instances may be unsuitable for some uses. Some problems include:
- Circular structures cannot be printed or read by these instances.
因此您需要手动指定实例。
关于haskell - 隐藏派生字段(显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22697972/