是否可以对数据进行遍历镜像

时间:2017-02-28 15:21:52

标签: haskell

假设我们有以下数据定义

data Test = Test
  { _intMember :: Int
  , _strMember :: String
  , _dblMember :: Double
  }

我想将数据结构编码为ByteString,如下所示:

encode :: Test -> ByteString
encode test = pack $ show (test ^. intMember) `append` show (test ^. strMember) `append` show (test ^. dblMember)

非常直截了当。然而,实际上我有一个类似50个红色的数据,它很快变得非常不愉快。更糟糕的是,我有很多像这样的数据定义。最好是Lens库中的toListOf可以处理自定义数据,但显然通用自定义数据不是该函数使用的Getting类型。所以我的问题是尽可能多地减少样板的最佳方法是什么?为简单起见,我们假设我需要处理的所有记录都是Show类的实例。谢谢你的阅读。

0 个答案:

没有答案