haskell - 隐藏派生字段(显示)

标签 haskell record

假设我有一个包含很多字段的数据记录:

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

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

我的问题原因: 当我有 cyclic dependencies在两个数据记录之间都使用 deriving (Show) show 函数将生成一个无限字符串。

最佳答案

Haskell 2010 report提到你的循环依赖是不合适的情况:

The derived Read and Show 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/

相关文章:

haskell - 在 NixOS 中,如何从命令行运行 Haskell 可执行文件?

haskell - 是否可以在 IO 以外的单子(monad)中将 HUnit 与测试框架一起使用?

csv - 在 F# 中向 CsvProvider 类型添加新成员

android - 由于Android 6.0录音问题

function - Postgres 函数结束循环并返回错误

java - 录制声音JAVAFX

python - 如何从 python 文件中读取由自定义分隔符终止的记录?

haskell - Data.ByteString.Lazy.Internal.ByteString 到字符串?

haskell ·帕斯卡三角形

haskell - Haskell 类型类的重新设计