Cruce de listas
En esta entrada comento las soluciones en Haskell y Maxima de un problema planteado por Adam Majewski en la lista de Maxima en forma de ejercicio para I1M y PD. Además, añadiré soluciones en otros lenguajes conforme las vaya recibiendo.
1. Solución en Haskell
En este ejercico se usarán las siguientes librerías
1 2 |
import Data.List import Test.QuickCheck |
Ejercicio 1. Definir la función
1 |
cruce :: Eq a => [a] -> [a] -> [[a]] |
tal que (cruce xs ys) es la lista de las listas obtenidas con uniendo las listas de xs sin un elemento con las de ys sin un elemento. Por ejemplo,
1 2 3 4 5 |
*Main> cruce [1,5,3] [2,4] [[5,3,4],[5,3,2],[1,3,4],[1,3,2],[1,5,4],[1,5,2]] *Main> cruce [1,5,3] [2,4,6] [[5,3,4,6],[5,3,2,6],[5,3,2,4],[1,3,4,6],[1,3,2,6], [1,3,2,4],[1,5,4,6],[1,5,2,6],[1,5,2,4]] |