Haskell 数组(矩阵)元素访问
我目前正在进行的一个项目需要访问 Haskell 中数组矩阵中的元素。所以,我尝试用谷歌搜索,到处搜索。
该函数应该是这样的:
getElementIndex :: Int -> Array (Int,Int) Int -> (Int,Int)
并且它必须返回矩阵中元素的I
和J
索引。
I'm currently in a project that will need to access elements in an Array-Matrix in Haskell. So, I've tried googling it, searching everywhere.
The funcion is supposed to be like this:
getElementIndex :: Int -> Array (Int,Int) Int -> (Int,Int)
And it must return the I
and J
indexes of the element in the matrix.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
要从 Haskell 中的
Array
类型读取元素,可以使用(!)
运算符,如下所示:因此,现在您需要做的就是遍历索引空间、行和列。我喜欢针对此类任务的列表推导式:
这只是 Data.Array.assocs 的专门版本:
它返回索引和元素的惰性列表。因此,调用
assocs
,然后获取第一个匹配的元素。To read elements from
Array
types in Haskell, you use the(!)
operator, as in:so, now all you need to do is walk the index space, rows and columns. I like list comprehensions for that kind of task:
which is just a specialized version of
Data.Array.assocs
:which returns a lazy list of indices and elements. So, call
assocs
, and then take the first element that matches.怎么样
How about
排除中的简单矩阵
http://www.haskell.org/haskellwiki/Prelude_extensions#Matrices
Simple Matrixs in Preclude
http://www.haskell.org/haskellwiki/Prelude_extensions#Matrices