2016-10-19 2 views

Antwort

5

Ich würde zip und ein Listenverständnis verwenden.

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

mit [0..] Zipping ist eine Standardmethode jedes Element mit einem Index zu markieren, und dann ist es eine einfache Abfrage.

0

Die Funktion elemIndices existiert bereits in Data.List

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

als

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