在未装箱的矢量中

时间:2014-02-22 01:48:50

标签: haskell unboxing algebraic-data-types

我想在Data.Vector.Unboxed.Unbox向量中存储类似Either类型的内容。我假设我应该为&#34创建一个Unbox实例;要么是b"其中a和b是Unbox(暂时忽略孤儿问题)。这样做的最佳方法是什么?我应该以(Bool,a,b)的方式存储它吗?我更关注速度而不是太空。

1 个答案:

答案 0 :(得分:1)

要在未装箱的结构中存储和类型,您需要使用它们的产品编码。例如。作为类型标记和值对的元组。

所以:

  Unbox a, Unbox b => Either a b
-->
  Unbox (Int, a, b)

使用"空的"的适当默认值a和b的插槽。