получить n-й массив из 2-го массива - PullRequest
0 голосов
/ 06 марта 2019

Я пытался получить n-й массив из 2-го массива, но не смог. Например, мне нужно получить второй массив. {[1,2,3], [4,5,6], [7,8,9]}

getElementIndex :: Array (Array Int) Int -> Array Int

Как мне реализовать эту функцию? Заранее спасибо.

1 Ответ

3 голосов
/ 06 марта 2019

Я почти уверен, что вы не можете определить массив как {[1,2,3], [4,5,6], [7,8,9]}, по крайней мере, если мы говорим о Data.Array.

Списки

Если вы говорите о списке, то если вы посмотрите на Hoogle для [a] -> int -> a, вы увидите, что (!!) :: [a] -> Int -> a - это функция, которую вы ищете. Если вам просто нужен второй, вы можете получить бесплатно

getSecond :: [[Int]] -> [Int]
getSecond = (!!2)

Массивы

Если вы говорите о Data.Array, то с помощью аналогичного поиска в Google вы также найдете функцию для этого: (!) :: Ix i => Array i e -> i -> e

ваш массив должен быть определен как Array Int (Array Int Int), а ваша функция будет

getSecond :: Array Int (Array Int Int) -> Array Int Int
getSecond = (!2)
...