【发布时间】:2014-02-20 02:33:59
【问题描述】:
假设我有一个简单的数据类型,例如:
data Cell = Open | Blocked
我想使用UArray Int Cell。是否有捷径可寻?我可以以某种方式重用UArray Int Bool 的定义吗?
【问题讨论】:
-
假设您想使用
Cells 的Unbox向量,您需要Unbox、Data.Mutable.MVector和Data.Mutable.MVector和Data.Vector.Vector的实例,以及两个类型族实例。这可能会导致一些讨厌的样板,但它可以从Bool的Unbox代码中复制。另一种方法是为Cell创建一个Storable实例并使用Storable向量。我不知道这两种向量类型之间有任何效率差异。