获取列表元素的当前位置

Anc*_*end 0 haskell

我想知道是否有办法找出列表位置x在函数中的位置?

hep list = [if x=="you" then "u" else if x=="are" then "r" else x | x <- list]
Run Code Online (Sandbox Code Playgroud)

就像是:

hep list = [if x=="by" && elemAt(x+1)=="the" && elemAt(x+2)=="way" then "btw" else if x=="are" then "r" else x | x <- list]
Run Code Online (Sandbox Code Playgroud)

sin*_*yma 5

您可能不希望以这种方式解决您的问题(索引链接列表是算法气味和所有),但如果您真的需要索引,您可以通过压缩索引列表来获取它们:

zip [0..] some_list
Run Code Online (Sandbox Code Playgroud)

然后,当您遍历此新列表时,您将获得对而不是单个元素.每对的第一个元素将是您想要的索引,第二个元素将是项目.

或者你可能会问你用什么函数去另一个方向(在某个索引处获取元素)?为此您使用!!:

some_list !! 5
Run Code Online (Sandbox Code Playgroud)