Haskell 如何使用REPA ByteString表示?
我想使用从Haskell 如何使用REPA ByteString表示?,haskell,Haskell,我想使用从ByteString类型构建的REPA数组。我可以使用fromByteString函数创建一个数组,该函数的类型为array B sh Word8。但是,对于B类型数组,没有等效的computeS函数 最大的问题是,我希望在末尾使用ByteString类型,但函数toByteString需要Array B sh Word8类型,我无法创建该类型 感觉REPA中的bytestring模块没有完全实现。作为比较,向量模块提供计算向量,外来指针模块提供计算机。ByTestRing缺少一个等效
ByteString
类型构建的REPA数组。我可以使用fromByteString
函数创建一个数组,该函数的类型为array B sh Word8
。但是,对于B
类型数组,没有等效的computeS
函数
最大的问题是,我希望在末尾使用ByteString
类型,但函数toByteString
需要Array B sh Word8
类型,我无法创建该类型
感觉REPA中的bytestring模块没有完全实现。作为比较,向量模块提供
计算向量
,外来指针模块提供计算机
。ByTestRing缺少一个等效函数是有原因的吗?我也看不出如何用repa生成数组B
。它没有这方面的相关实例。你愿意吗
一个明显且最安全的解决方法是从延迟表示中提取一对(Int,Int->Word8)
,并使用unprovern
(我可以从bytestring的公共API中找到的最合适的函数)
ByteString
实际上是一个修饰的ForeignPtr
,因此您可以使用F
表示(它有一个Target
实例),获取ForeignPtr
并调用