在 Erlang 中使用二维(多)维数组
这些天我正在解决 Erlang 中的 Project Euler 问题。
由于我从一开始就是一名 C++ 程序员,有时我真的很想使用二维数组进行编码。
我的想法之一是使用像这样的元组和列表:
List=[{X,0}||X<-lists:seq(1,3)]
{1,0}
{2,0}
{3,0}
Is there better way to Implement multiDimensions arrays in Erlang?
These days I'm solving Project Euler problems in Erlang.
Since I'm a C++ programmer from the beginning, sometimes I really want to code using two dimensional arrays.
One of my idea is to use tuples and lists like this:
List=[{X,0}||X<-lists:seq(1,3)]
{1,0}
{2,0}
{3,0}
Is there nice way to implement multidimensional arrays in Erlang?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
请参阅数组模块,但对于多维访问,您必须编写自己的包装器。 如果您的任何维度很短并且访问主要是读取,您可以使用元组并使用
erlang:element
和erlang:setelement
。 无论如何,建议使用自己的包装。See array module but for multidimensional access you have to write your own wrapper. If any of your dimension is short and access is mostly read you can use tuples and use
erlang:element
anderlang:setelement
. Own wrapper is recommended anyway.尝试使用 {X, Y, Z} 作为键的数组(实际上是字典)。 它看起来像 3d 数组;)
Try array(actually dict) with {X, Y, Z} as a key. It's look like 3d array ;)
我为二维数组的数组模块编写了一个小包装器
I wrote a small wrapper over array module for 2d arrays