如何在Haskell中表示数值表(例如列联表)?

时间:2014-11-16 12:43:58

标签: haskell data-structures multidimensional-array contingency

在C语言中,最简单的方法是使用二维数组。那么Haskell呢?列表列表似乎不是一个优雅的解决方案。 你会建议什么?

2 个答案:

答案 0 :(得分:5)

Haskell拥有大量ArraysVectors和其他容器。

要在其中一个中进行选择,您需要更详细地了解您的要求。

答案 1 :(得分:4)

可以使用列表语法来描述多维数组文字,但您认为最适合的基础数据类型。 E.g。

x :: Array U DIM3 Int
x = fromListUnboxed (Z :. (3::Int) :. (3::Int) :. (3::Int))
           [1,2,3
           ,4,5,6
           ,7,8,9

           ,10,11,12
           ,13,14,15
           ,16,17,18

           ,19,20,21
           ,22,23,24
           ,25,26,27]

是一个三维数组(类型DIM3 Int)。具体语法可以用列表表示法给出(平面或嵌套),编译器将负责对象构造。