Elementos que respetan la ordenación

Se dice que un elemento x de una lista xs respeta la ordenación si x es mayor o igual que todos lo que tiene delante en xs y es menor o igual que todos lo que tiene detrás en xs. Por ejemplo, en la lista lista [3,2,1,4,6,5,7,9,8] el número 4 respeta la ordenación pero el número 5 no la respeta (porque es mayor que el 6 que está delante).

Definir la función

tal que (respetuosos xs) es la lista de los elementos de xs que respetan la ordenación. Por ejemplo,

Comprobar con QuickCheck que para cualquier lista de enteros xs se verifican las siguientes propiedades:

  • todos los elementos de (sort xs) respetan la ordenación y
  • en la lista (nub (reverse (sort xs))) hay como máximo un elemento que respeta la ordenación.

Soluciones

5 Comentarios

    1. De hecho, dado que en una posición sólo hay un único elemento, cuando se cumple la condición el mínimo y el máximo coinciden luego puede simplificarse (aunque apenas hay optimización) a:

Escribe tu solución