P1) Ejercicio 5-c

P1) Ejercicio 5-c

de Alejandro Schubert Bentancurt Sosa -
Número de respuestas: 1

Hola, la parte c de este ejercicio es:


Defina una instancia de Arbitrary para listas ordenadas y usela para

definir otra version de la propiedad QuickCheck anterior.


Una solución es tratar de reutilizar el generador existente para listas comunes, generando otro generador con el anterior a través de la función lift. ¿que otras posibilidades hay? ¿cuál sería la mejor solución para esta parte del ejercicio?


Gracias,

Alejandro.

En respuesta a Alejandro Schubert Bentancurt Sosa

Re: P1) Ejercicio 5-c

de Marco Nicolas Rodriguez Alvariza -

A mi se me ocurrieron dos posibles generadores (implementé el segundo):

  1. Uno recursivo que en cada llamada genera sublistas ordenadas. Por ejemplo, primero genera [3]; después, como el primero es 3, agrega al azar un número que sea mayor, y genera [3,5]; después, como el útlimo es 5, le agrega un número al azar mayor a 5, y genera [3,5,6], etc. Hay que hacerlo con frequency o algún combinador que te asegure que no entres en loop infinito.
  2. Otro, más sencillo, que reutilice el generador de listas aleatorias. Genero una lista aleatoria usando el generador de listas aleatorias, y simplemente la ordeno.

Saludos,

Nicolás.