7

Data.Binary文档显示了手动编写实例。有没有解决的办法?我在这里看到还有另一个库 SerTH,它有一个(基于 Haskell 的模板)派生机制,但它的链接似乎已断开。此外,如果您了解其他库,那么良好的性能对我们来说至关重要。

先感谢您!

4

3 回答 3

6

http://hackage.haskell.org/packages/archive/binary/0.7.1.0/doc/html/Data-Binary.html#g:3

 {-# LANGUAGE DeriveGeneric #-}

 import Data.Binary
 import GHC.Generics (Generic)

 data Foo = Foo
          deriving (Generic)

 -- GHC will automatically fill out the instance
 instance Binary Foo
于 2013-05-02T00:14:16.643 回答
5

Neil Mitchells Derive 包有一个用于派生二进制实例的模板 haskell 宏。

于 2012-01-03T16:05:11.397 回答
5

既然您询问了其他图书馆:

谷物数据序列化库具有谷物衍生,它与 GHC 7.2 中的新泛型支持一起使用。与 Template Haskell 相比,它具有编译时速度优势(这些天我倾向于避免 TH,因为它使编译变得更慢),并且与 SYB 和 Uniplate 等数据类型通用方法相比,它具有运行时速度优势。

谷物与二进制非常相似,但使用严格的字节字符串;二进制自 2009 年以来一直没有更新,并且谷物具有诸如IEEE-754 浮点格式支持之类的细节,所以如果你想派生,我看不出有任何理由不使用二进制。

于 2012-01-03T18:10:31.337 回答