2016-10-19 2 views
0

나는 다음과 같은 입력을 가지고 :찾기 지수 - 하스켈

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

가 그래서 문자열의 목록입니다 내가의 인덱스를 얻을 싶다 "+"- [1, 5]. 그것을 어떻게 성취 할 수 있습니까?

답변

5

나는 zip을 사용하고 목록을 이해합니다. [0..]으로 압축 중

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

는 인덱스 모든 요소 레이블을하는 표준 방법이며, 다음은 간단한 쿼리입니다.

0

함수 elemIndices 이미

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

elemIndices :: Eq a => a -> [a] -> [Int] 

존재