在List中查找String的索引 - Haskell

时间:2016-10-19 19:59:11

标签: haskell

我有以下输入:

["56", "+", "49", "-", "2", "+", "15]

所以它是一个字符串列表,我想得到“+” - [1,5]的索引。我怎样才能实现它?

2 个答案:

答案 0 :(得分:5)

我使用zip和列表理解。

indicesOf :: Eq a => a -> [a] -> [Int]
indicesOf a as = [i | (b, i) <- zip as [0..], b == a]

使用[0..]进行压缩是使用索引标记每个元素的标准方法,然后它就是一个简单的查询。

答案 1 :(得分:0)

Data.List

中已存在elemIndices函数
elemIndices :: Eq a => a -> [a] -> [Int]

作为

>>> elemIndices "+" ["56","+","49","-","2","+","15"]
[1,5]