该Data.Binary
文档显示了手动编写实例。有没有解决的办法?我在这里看到还有另一个库 SerTH,它有一个(基于 Haskell 的模板)派生机制,但它的链接似乎已断开。此外,如果您了解其他库,那么良好的性能对我们来说至关重要。
先感谢您!
该Data.Binary
文档显示了手动编写实例。有没有解决的办法?我在这里看到还有另一个库 SerTH,它有一个(基于 Haskell 的模板)派生机制,但它的链接似乎已断开。此外,如果您了解其他库,那么良好的性能对我们来说至关重要。
先感谢您!
见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
Neil Mitchells Derive 包有一个用于派生二进制实例的模板 haskell 宏。
既然您询问了其他图书馆:
谷物数据序列化库具有谷物衍生,它与 GHC 7.2 中的新泛型支持一起使用。与 Template Haskell 相比,它具有编译时速度优势(这些天我倾向于避免 TH,因为它使编译变得更慢),并且与 SYB 和 Uniplate 等数据类型通用方法相比,它具有运行时速度优势。
谷物与二进制非常相似,但使用严格的字节字符串;二进制自 2009 年以来一直没有更新,并且谷物具有诸如IEEE-754 浮点格式支持之类的细节,所以如果你想派生,我看不出有任何理由不使用二进制。