Ir al contenido principal

Actualización de «Triparticiones de una lista»

He actualizado las soluciones del ejercicio «Triparticiones de una lista» cuyo enunciado es


Definir la función

triparticiones :: [a] -> [([a],[a],[a])]

tal que (triparticiones xs) es la lista de las ternas (xs1,xs2,xs3) tales que su concatenación es xs. Por ejemplo,

λ> triparticiones "abc"
[("","","abc"),("","a","bc"),("","ab","c"),("","abc",""),
 ("a","","bc"),("a","b","c"),("a","bc",""),("ab","","c"),
 ("ab","c",""),("abc","","")]
λ> length (triparticiones [1..5000])
12507501

Comprobar con QuickCheck que para cada terna de (triparticiones xs) se cumple que la concatenación de sus elementos es xs.


Nota: Puedes consultar las soluciones aquí.