【发布时间】:2015-01-13 10:34:31
【问题描述】:
在 C 语言中,最简单的方法是使用二维数组。哈斯克尔呢?列表列表似乎不是一个优雅的解决方案。 你有什么建议?
【问题讨论】:
标签: haskell data-structures multidimensional-array contingency
在 C 语言中,最简单的方法是使用二维数组。哈斯克尔呢?列表列表似乎不是一个优雅的解决方案。 你有什么建议?
【问题讨论】:
标签: haskell data-structures multidimensional-array contingency
可以使用列表语法来描述多维数组字面量,但使用您认为最合适的底层数据类型。例如
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)。具体语法可以用列表表示法(平面或嵌套)给出,编译器将负责对象的构造。
【讨论】:
.(或:.?)运营商是什么?
: 开头的运算符是数据构造函数。大概是这里构造数组大小的原因。
:. 本身就是一个运算符。
:. 非常困难,所以如果不是数据构造函数,它是什么?