Tengo dificultades para descifrar una lista de Ints en una tupla que contiene dos listas nuevas, de modo que cada elemento (comenzando por el primero) va a la primera lista y cada otro elemento en el segundo.Haskell: dividiendo la lista en tupla de dos listas nuevas
así:
split [] = ([],[])
split [1] = ([1],[])
split [1,2] = ([1],[2])
split [1,2,3] = ([1,3],[2])
split [1,2,3,4] = ([1,3],[2,4])
que estoy tratando de lograr esto de forma recursiva (con guardias) y sólo utilizando los argumentos individuales XS
Este es mi enfoque que se pone cada vez mensajes de error:
split :: [Int] -> ([Int],[Int])
split xs | length(xs) == 0 = ([],[])
| length(xs) == 1 = (xs !! 0 : [],[])
| length(xs) == 2 = (xs !! 0 : [], xs !! 1 : [])
| otherwise = (fst ++ xs !! 0, snd ++ xs !! 1) ++ split(drop 2 xs))
Gracias chicos! – Shabu
Debe aceptar una de las respuestas. –