Haskell文本包选择

时间:2014-01-02 19:12:58

标签: haskell unicode

在当天,每个人都习惯用String进行文字处理。但是后来有些人指出这实际上非常非常低效,并且ByteString包诞生了。

ByteString非常适合处理二进制数据。但很快人们就指出ByteString.Char8实际上是一个巨大的kludge,你真正想要的是真正的 Unicode处理外部数据。有了它,用于处理打包的Unicode字符串的大约30个类似但不兼容的Haskell包诞生了。并且没有一个能够真正获得任何牵引力,因为......好吧,三十个太多了!

我的问题:这个问题已修复了吗?换句话说,社区是否已选择一个包来完成这项工作?如果是这样,那是哪一个?

1 个答案:

答案 0 :(得分:11)

我认为目前的黄金标准是Data.Text,你可以用

安装
$ cabal install text

您应该将其限定为

import qualified Data.Text as T

您可以通过从Text明确转换来在代码中创建String值,如

>> let str = T.pack "Hello, world"

或使用OverloadedStrings语言扩展程序

>> :set -XOverloadedStrings
>> let str = "Hello, world" :: Text