Итак, я получил список, содержащий кортежи, и мне нужно разбить его на два списка: первый список, содержащий элементы с нечетным индексом, и второй список, содержащий элементы с четным индексом, должны быть выполнены с использованием Fold, здесь моя попытка:
breakList :: [(Integer, Integer)] -> [[(Integer, Integer)]]
breakList [] = [[], []]
breakList xxs@(x:xs) = foldl (\ acc y -> if length (acc !! 0) < length (acc !! 1) then y : (acc !! 0) else y : (acc !! 1) ) [[], []] xxs
Ошибка, которую я получаю:
Невозможно найти тип '(целое, целое)'
с '[(Integer, Integer)]'
Ожидаемый тип: [[(Integer, Integer)]]
при наведении на y : (acc !! 1) and y : (acc !! 0)
Пример:
Введите:
ex1 = [(2, 2), (1, 3), (2, 3), (2, 4), (3, 5), (0, 2), (2, 1), (1 4)
, (2, 0), (1, 2), (3, 1), (1, 0)]
выход
breakList ex1
== ([(2,2), (2,3), (3,5), (2,1), (2,0), (3,1)], [(1,3), (2 , 4), (0,2), (1,4), (1,2), (1,0)])