Ich habe folgende Eingabe bekam:Suche Indizes String in List - Haskell
["56", "+", "49", "-", "2", "+", "15]
So ist es eine Liste von Strings, und ich möchte erhalten Indizes von "+" - [1, 5]. Wie kann ich es erreichen?
Ich habe folgende Eingabe bekam:Suche Indizes String in List - Haskell
["56", "+", "49", "-", "2", "+", "15]
So ist es eine Liste von Strings, und ich möchte erhalten Indizes von "+" - [1, 5]. Wie kann ich es erreichen?
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.
Die Funktion elemIndices
existiert bereits in Data.List
elemIndices :: Eq a => a -> [a] -> [Int]
als
>>> elemIndices "+" ["56","+","49","-","2","+","15"]
[1,5]