Partición por longitudes
Definir la función
1 |
particion :: [a] -> [Int] -> [[a]] |
tal que (particion xs ns) es la partición de xs donde la longitud de cada parte está determinada por los elementos de ns. Por ejemplo,
1 2 |
particion [1..10] [2,5,0,3] == [[1,2],[3,4,5,6,7],[],[8,9,10]] particion [1..10] [1,4,2,3] == [[1],[2,3,4,5],[6,7],[8,9,10]] |
Soluciones
1 2 3 |
particion :: [a] -> [Int] -> [[a]] particion [] [] = [] particion xs (n:ns) = take n xs : particion (drop n xs) ns |