2017-02-07 8 views
0

Welche Funktion kann ich verwenden, um den Index eines Elements in einem Array zu finden? Zum Beispiel möchte ich den Index 'x' in einer Array (Data.Array)Den Index eines Elements in einem Array finden - Haskell

lowerCase = listArray ((0,0),(1,12)) ['a'..] 
+0

Was passiert, wenn es viele 'X' in der Anordnung ist zu finden? Im Grunde sind Arrays für den Zugriff nach Index und wenn Sie den Index des Elements suchen müssen, ist Array nicht die richtige Datenstruktur. – Ankur

+0

Danke Ankur. In meinem Fall weiß ich, dass es im Array keine doppelten Daten gibt ... Ich wollte auf Daten mit einem Tupel zugreifen und deshalb habe ich Array verwendet. Welche Datenstruktur würden Sie in diesem Fall empfehlen? – eii0000

Antwort

0
fst <$> find ((== 'a') . snd) $ assocs lowerCase 
+0

Warum hat 'array' nicht sein eigenes' find' oder in diesem Fall 'elemIndex' /' elemIndices'? – Michael

+0

@Michael Sie können 'find' verwenden, da' Array' eine 'Faltbare' Instanz hat. Ich weiß nicht, warum es für 'Array' keinen' elemIndex' gibt. – bwroga

+0

Vielen Dank! Nur eine kleine Sache .. Ich fügte fromJust hinzu fst $ fromJust $ find ((== 'a'). Snd) $ assocs lowCase – eii0000

Verwandte Themen