矢量

它[Data.Vector]通过循环融合强调非常高的性能,同时保留丰富的界面。主要数据类型是盒装和未装箱的数组,并且数组可以是不可变的(纯)或可变的。数组可以包含 Storable 元素,适合传入和传出 C,并且可以在数组类型之间进行转换。数组由非负 Int 值索引。

Haskell Wiki 有以下建议

一般来说:

  • 对于大多数情况,最终用户应使用 Data.Vector.Unboxed
  • 如果需要存储更复杂的结构,请使用 Data.Vector
  • 如果需要传递给 C,请使用 Data.Vector.Storable

对于库作者;

  • 使用通用接口,以确保你的库具有最大的灵活性:Data.Vector.Generic