Haskell - 用于稀疏矩阵的数据结构是什么?

时间:2016-05-15 08:29:56

标签: haskell

使用Haskell,我正在HackerRank上练习,以熟悉语言。对于我目前正在做的particular problem,我将不得不进行矩阵乘法运算。不像我可以使用Numpy的Python,我已经检查了Ideone,看起来Haskell没有插入任何线性代数包,所以我将手工完成。如果我在F#中做这个问题,我会使用一个普通的数组,但在Haskell中我不确定它有各种数组类。我正在寻找一些关于我应该在这里讨论的建议,因为到目前为止我总共有三天的语言经验。

我也想知道元组是否是在Haskell中分配的堆栈或堆,因为我可能必须使用它们来编码arrayName[x][y] 位置。

1 个答案:

答案 0 :(得分:1)

要回答我自己的问题,Haskell中用于普通数组的goto类将是Data.Vector.Unboxed。 Haskell区分了盒装和非盒装数组,尽管我知道它仍然以某种方式让我感到惊讶,在矢量矢量中,外部矢量必须是盒装类型。

关于元组,根据效率的文档,元组的向量将被编译为向量元组,这肯定意味着元素将被分配到堆上的连续区域。