Quiero una función que tome dos listas de cualquier tipo y devuelva una (es decir, f:: [[a]] -> [[a]] -> [[a]]
). Básicamente, también produce la 'concatenación' de las dos listas de entrada.Concatenación de listas en Haskell
p. Ej.
> f [[1,2,3], [123]] [[4,5,6], [3,7]]
[[1,2,3,4,5,6], [1,2,3,3,7], [123,4,5,6], [123,3,7]]
Actualmente he llegado hasta aquí con él:
f _ [] = []
f [] _ = []
f (xs:xss) (ys:yss) = ((xs ++ ys) : [m | m <- f [xs] yss])
Pero esto no tiene en cuenta xss
y que está mal. ¿Alguna sugerencia?
o simplemente 'liftA2 (++)' – luqui