首页 > 解决方案 > 当需要快速 (O(1)) 索引时,哪种 Haskell 字符串类型用于 Unicode 数据?

问题描述

在阅读了String, Text, Text.Lazy, ByteString, ByteString.LazyHaskell 中所有 5 ( ) 种常用字符串类型之后,我不知所措:

我需要的是一个不可变的字符串类型(我从文件中读取一次并且从不更改它),具有快速索引(O(1))并且可以由代码点使用,而不是由可能不完整的字节使用,形成一个代码点。

实际上,我可以接受 a Data.ByteString.UTF32,就像那个表示一样,我再也不需要小心多字节编码了。

我是否必须为自己编写这样一个模块,或者——无论如何——其他人是否得出了同样的结论并且已经这样做了?

标签: stringhaskellunicode

解决方案


这听起来就像一个数组Char: Data.Vector.Unbox.Vector Char

https://hackage.haskell.org/package/vector-0.12.0.3/docs/Data-Vector-Unboxed.html


推荐阅读