这片土地上最快的Traversable实例是什么?

Jon*_*off 2 arrays performance haskell

我正在使用广告库http://hackage.haskell.org/package/ad,我正在寻找最快的遍历来传递其各种功能.

理想情况下,它将是一个使用连续内存数组的数据结构,因此我可以将其传递给C++世界中的数值解算器.

什么是我最好的选择?

Don*_*art 6

一个使用连续内存数组的数据结构,所以我可以将它传递给C++世界中的数值解算器.

使用未装箱的Vector类型的可存储实例.

'Storable'约束 - 能够传递给C - 限制了很多可用的数据类型.矢量支持非常快速的批量操作.另一种选择是修复阵列.

但是,由于ad程序包需要Functor和Traversable,因此您将受到限制,但它们仅为完整性而提供 - 实际上是序列化到列表以获取可遍历的实例.Traversable和Storable永远不会混合,因为Storable属于某些无盒装类型.