Haskell 在可存储和取消存储之间转换
由于的答案,我希望能够从的实例构造的实例(反之亦然)。这可能吗Haskell 在可存储和取消存储之间转换,haskell,unboxing,storable,Haskell,Unboxing,Storable,由于的答案,我希望能够从的实例构造的实例(反之亦然)。这可能吗 我所知道的最接近的事情是,但这只会创建一个不可绑定的实例。我可以想象一种从不可绑定到可存储的非常粗糙的方式,但它确实是粗糙和低效的!事实上,经过努力,我并不想把它写出来。其概念是,使用Unbox所能做的就是在Unbox向量中使用它。因此,您可以使用单例元素初始化未绑定的向量。给定上述元素,您可以创建一个包含它的向量,然后通过邪恶撬开向量,并将字节直接用于可存储实例。你可以同样邪恶地走另一条路 但我不知道你为什么要这么做。默认情况下可
我所知道的最接近的事情是,但这只会创建一个不可绑定的实例。我可以想象一种从不可绑定到可存储的非常粗糙的方式,但它确实是粗糙和低效的!事实上,经过努力,我并不想把它写出来。其概念是,使用Unbox所能做的就是在Unbox向量中使用它。因此,您可以使用单例元素初始化未绑定的向量。给定上述元素,您可以创建一个包含它的向量,然后通过邪恶撬开向量,并将字节直接用于可存储实例。你可以同样邪恶地走另一条路
但我不知道你为什么要这么做。默认情况下可存储的大多数数据类型也是取消装箱的,反之亦然。而对于那些不需要的人来说,导出可存储数据非常简单——可以手动,也可以使用工具。检查
向量
包
使用
Data.Vector.convert::(Vector va,Vector wa)=>va->wa
正如vivian已经回答的那样,您可以使用Data.Vector.Generic
模块中提供的convert
功能:我似乎找不到您在列表中提到的转换功能。另外,基于类型签名,我看不出它会有什么帮助?看看Data.Vector
模块/文档的末尾。我看到的只是toList
和fromList
,而a什么也没提。(刚刚注意到我是一个graverobber…这个问题现在已经2岁了)