Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 在可存储和取消存储之间转换_Haskell_Unboxing_Storable - Fatal编程技术网

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岁了)