Compactación de listas

Definir la función

tal que (compacta xs) es la lista obtenida al compactar xs con las siguientes reglas:

  1. se eliminan los elementos Nothing;
  2. si dos elementos consecutivos tienen el mismo valor, se sustituyen por el sucesor de su valor y
  3. los restantes elementos no se cambian.

Por ejemplo,

Soluciones

11 Comentarios

    1. Si aplicas aux a la lista completa, se colapsa en casos como el siguiente, lo que no parece la intención de la función:

      Los únicos números iguales son 1 y 1. Podría interpretarse que el resultado deseado es [2,2,3,4]. Sin embargo, tu función colapsa todos los valores y devuelve [5]. Habría sido de ayuda un ejemplo similar a este para que se observe dónde deberíamos aplicar la función.

      1. Mi interpreción es que las reglas son aplicables mientras sea posible. Tienes razón que sólo se tiene que hacer la primera sustitución, tal y como muestra el último ejemplo:

        Por tanto mi solución no es correcta.

Escribe tu solución