首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Haskell (矩阵)元素访问

Haskell (矩阵)元素访问
EN

Stack Overflow用户
提问于 2011-05-09 18:50:02
回答 3查看 5.1K关注 0票数 3

我目前在一个项目中,需要访问Haskell中的数组-矩阵中的元素。所以,我试着搜索它,到处搜索。

游戏应该是这样的

代码语言:javascript
复制
getElementIndex :: Int -> Array (Int,Int) Int -> (Int,Int)

必须返回矩阵中元素的IJ索引。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-09 19:35:42

要从Haskell中的Array类型读取元素,可以使用(!)运算符,如下所示:

代码语言:javascript
复制
Prelude Data.Array> let v = listArray (0,9) [1..10]
Prelude Data.Array> v ! 3
4

所以,现在您需要做的就是遍历索引空间、行和列。我喜欢那种任务的理解:

代码语言:javascript
复制
assocs' x y arr = [ ((i,j), arr ! (i,j))
                  | i <- [0..x-1]
                  , j <- [0..y-1]
                  ]

它只是Data.Array.assocs的一个专门版本。

代码语言:javascript
复制
assocs :: Ix i => Array i e -> [(i, e)]

它返回索引和元素的惰性列表。因此,调用assocs,然后获取匹配的第一个元素。

票数 6
EN

Stack Overflow用户

发布于 2011-05-09 19:05:53

怎么样

代码语言:javascript
复制
\x -> map fst . filter ((==x) . snd) . assocs
票数 4
EN

Stack Overflow用户

发布于 2011-12-12 02:44:08

排除http://www.haskell.org/haskellwiki/Prelude_extensions#Matrices中的简单矩阵

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5941127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档