1

在 C 中,最简单的方法是使用二维数组。哈斯克尔呢?列表列表似乎不是一个优雅的解决方案。你有什么建议?

4

2 回答 2

5

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

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

于 2014-11-16T12:47:38.213 回答
4

多维数组字面量可以使用列表语法来描述,但使用您认为最合适的任何底层数据类型。例如

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]

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

于 2014-11-16T13:34:50.263 回答