Definir la función
parejas :: [a] -> [(a,a)] |
tal que (parejas xs) es la lista de las parejas formados por los elementos de xs y sus siguientes en xs. Por ejemplo,
parejas [1..4] == [(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)] length (parejas [sin,cos,tan,log]) == 6 |
Soluciones
import Data.List (tails) -- 1ª solución parejas :: [a] -> [(a,a)] parejas [] = [] parejas (x:xs) = [(x,y) | y <- xs] ++ parejas xs -- 2ª solución parejas2 :: [a] -> [(a,a)] parejas2 xs = [(x,y) | (x:ys) <- tails xs , y <- ys] |
Otras soluciones
- Se pueden escribir otras soluciones en los comentarios.
- El código se debe escribir entre una línea con <pre lang=”haskell”> y otra con </pre>
Pensamiento
“La primera regla del descubrimiento es tener inteligencia y buena suerte. La segunda regla del descubrimiento es sentarse y esperar hasta que se tenga una idea brillante.”
Una solución de “Parejas de un conjunto”