如何在Haskell中表示数字表(例如列联表)?
在C语言中,最简单的方法是使用二维数组。哈斯克尔呢?列表列表似乎不是一个优雅的解决方案。如何在Haskell中表示数字表(例如列联表)?,haskell,data-structures,multidimensional-array,contingency,Haskell,Data Structures,Multidimensional Array,Contingency,在C语言中,最简单的方法是使用二维数组。哈斯克尔呢?列表列表似乎不是一个优雅的解决方案。 您有什么建议?Haskell收集了大量的容器和其他容器 要在其中一个容器中进行选择,您需要更详细地了解您的需求。Haskell收集了大量的、和其他容器 要选择其中一种,您需要更详细地了解您的需求。多维数组文字可以使用列表语法进行描述,但可以使用您认为最合适的底层数据类型。例如 x :: Array U DIM3 Int x = fromListUnboxed (Z :. (3::Int) :. (3::In
您有什么建议?Haskell收集了大量的容器和其他容器
要在其中一个容器中进行选择,您需要更详细地了解您的需求。Haskell收集了大量的、和其他容器
要选择其中一种,您需要更详细地了解您的需求。多维数组文字可以使用列表语法进行描述,但可以使用您认为最合适的底层数据类型。例如
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。具体语法可以用列表表示法给出,可以是平面的,也可以是嵌套的,编译器将负责对象的构造。多维数组文字可以使用列表语法描述,但可以使用您认为最合适的底层数据类型。例如
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。具体语法可以用列表表示法给出,可以是平面的,也可以是嵌套的,编译器将负责对象的构造。谢谢您的回答。我可以问你什么吗。或者:。?运算符是?@fstab以:开头的运算符是数据构造函数。这大概是在构建数组的大小。所以他好像在构建一个列表,但点是什么?@fstab:。是一个单独的操作员。@BartekBanachewicz:不幸的是,google:,很难找到,所以如果不是数据构造函数,它是什么?谢谢你的回答。我可以问你什么吗。或者:。?运算符是?@fstab以:开头的运算符是数据构造函数。这大概是在构建数组的大小。所以他好像在构建一个列表,但点是什么?@fstab:。是一个单独的操作符。@BartekBanachewicz:不幸的是,google:,很难找到它,所以如果它不是数据构造函数,它是什么?