首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Haskell中使用匿名函数跟踪列表索引

在Haskell中使用匿名函数跟踪列表索引
EN

Stack Overflow用户
提问于 2013-05-16 21:31:51
回答 2查看 895关注 0票数 2

我是Haskell的新手。所以这可能有点傻。

我想要做的是:

代码语言:javascript
运行
复制
map (\x -> x + **position in list**) [0, 0, 0] => [1, 2, 3]

如何做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-16 21:38:25

获取索引的最简单方法是使用[0..]压缩列表(如果您想要基于1的索引,则使用[1..] ),例如:

代码语言:javascript
运行
复制
> zipWith (\i x -> x + i) [1..] [0, 0, 0]
[1,2,3]
票数 9
EN

Stack Overflow用户

发布于 2013-05-16 21:40:11

现在,让我们假设您想要将每个元素与其在列表中的位置配对。做到这一点的简单方法是:

代码语言:javascript
运行
复制
λ> zip [0..] [0, 0, 0]
[(0,0),(1,0),(2,0)]

如果您真正想要的只是索引,那么您只需要[0..]的第一个n元素,其中n是输入列表的长度。所以..。

代码语言:javascript
运行
复制
λ> let xs = [0,0,0]
λ> [0..length xs - 1]
[0,1,2]

或者,等同地,

代码语言:javascript
运行
复制
λ> take (length xs) [0..]
[0,1,2]
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16588871

复制
相关文章

相似问题

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