Listas duplicadas

Se observa que en la cadena «aabbccddeffgg» todos los caracteres están duplicados excepto el ‘e’. Al añadirlo obtenemos la lista «aabbccddeeffgg» y se dice que esta última está duplicada.

También se observa que «aaaabbbccccdd» no está duplicada (porque hay un número impar de ‘b’ consecutivas). Añadiendo una ‘b’ se obtiene «aaaabbbbccccdd» que está duplicada.

Definir las funciones

tales que

  • (esDuplicada xs) se verifica si xs es una lista duplicada. Por ejemplo,

  • (duplica xs) es la lista obtenida duplicando los elementos de xs que no lo están. Por ejemplo,

Comprobar con QuickCheck que, para cualquier lista de enteros xs, se verifica la siguiente propiedad:

Soluciones

4 Comentarios

Escribe tu solución