Data.Vector.Mixed的目的

时间:2015-04-20 13:37:34

标签: haskell vector ghc

在Edward Kmett的hybrid-vectors图书馆中,有两个主要模块:Data.Vector.HybridData.Vector.Mixed。有big article写了关于前者背后的动机的文章。后者是顺便提到但没有任何解释。我试图找出它的用例。到目前为止,我注意到了两件事:

  1. 有一个Mixed类型类,有Typeable个约束。我不理解黑线鳕的解释,但似乎必须要求Typeable约束来恢复类型信息或在某些时候安全施放。
  2. Vector数据类型仅针对基础MVector进行参数化。这与Hybrid模块不同,后者通过两个矢量类型和一个元组进行参数化。
  3. 我将非常感谢任何有用的见解或(甚至更好)用例的小例子。感谢。

1 个答案:

答案 0 :(得分:1)

在我的理解中,Mixed typesclass将允许使用类型安全函数来解析,合并和折叠Vector,而不是具有并发处理,其中每个矢量同时被解析声明M.Vector g v M.Vector h m以便在这些向量中找到单个点,然后使用for MVector do |Stream.length g v && Stream h m在每个向量中找到一个单身,以便使用此键进行折叠key :: mergeStreamwith k d -> Stream k i -> Stream d i instance Singleton key where key = Vector.singleton[ v->(v-> MVector v m) -> MVector m] do transversewithkey g v => key.foldlwithkey g h