Какую функцию я могу использовать, чтобы найти ее индекс элемента в массиве? Например, я хочу, чтобы найти индекс 'x'
в качестве Array
(Data.Array
)Поиск индекса элемента в массиве - Haskell
lowerCase = listArray ((0,0),(1,12)) ['a'..]
Какую функцию я могу использовать, чтобы найти ее индекс элемента в массиве? Например, я хочу, чтобы найти индекс 'x'
в качестве Array
(Data.Array
)Поиск индекса элемента в массиве - Haskell
lowerCase = listArray ((0,0),(1,12)) ['a'..]
fst <$> find ((== 'a') . snd) $ assocs lowerCase
Почему 'array' не имеет собственного' find' или в этом случае 'elemIndex' /' elemIndices'? – Michael
@Michael Вы можете использовать 'find', потому что' Array' имеет экземпляр 'Foldable'. Я не знаю, почему нет 'elemIndex' для' Array'. – bwroga
Спасибо! Просто небольшая вещь .. Я добавил fromJust fst $ fromJust $ find ((== 'a'). Snd) $ assocs lowerCase – eii0000
Что делать, если есть много 'x' в массиве? В основном массивы предназначены для доступа по индексу, и если вам нужно найти индекс элемента, то массив не является правильной структурой данных. – Ankur
Спасибо Ankur. В моем случае я знаю, что в массиве нет повторяющихся данных ... Я хотел получить данные по кортежу, поэтому я использовал Array. В таком случае, какую структуру данных вы бы порекомендовали? – eii0000