Я почти уверен, что вы не можете определить массив как {[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)