dan*_*dan 9 serialization haskell
我已经使用了Text.Show.Pretty模块,它可以将像记录这样的Haskell数据结构序列化为一种很好的人类可读格式,并且仍然可以使用它轻松地反序列化它们read.输出格式比YAML和JSON更具可读性.
使用以下内容的Haskell记录的序列化输出示例Text.Show.Pretty:
Book
  { author = "Plato"
  , title = "Republic"
  , numbers = [ 123
              , 1234
              ]
  }
来自Ruby世界,我知道YAML和JSON是大多数Rubyists用于序列化数据结构的首选格式.是否经常使用Haskell Show和Read实例在Haskell中实现相同的目的?
Dan*_*ner 15
对于大型结构,我不推荐它.read比糖蜜慢.轶事时间:我有一个名为的节目yeganesh.从概念上讲,它非常简单:[(String,Double)]用大约2000个元素读取并转储按其元素排序的键.我以前使用Show/ 来存储它Read,但发现切换到自定义打印机和解析器加速了程序8倍.(注意:解析并不是因为解析加速了8倍.整个程序加速了这意味着解析加速了一个比这更大的因素.)这在令人不安的长暂停和即时满足之间产生了差异.
我同意Daniel Wagner但是如果你想要一个用户可以用简单的文本编辑器操作的文件,你可以使用read/show来获取一小组数据,即配置文件.
我不认为这是haskellers中常见的方式,但我通常使用parsec而不是read'config data'和自定义类/实例而不是Show.
如果你有很多数据,通常使用Data.Binary或Data.Serialize.
| 归档时间: | 
 | 
| 查看次数: | 670 次 | 
| 最近记录: |