generar aleatoriamente un contexto
Sólo generar un contexto monádico azar apropiado. Si estás realizando pruebas, no puedes quedarte en una mónada imaginaria pura, en realidad tienes que elegir una mónada particular para probar. ¿Escogiste una lista de mónada? Generar aleatoriamente una lista como el contexto. ¿Una mónada de estado? Genere aleatoriamente un valor del tipo de estado para el contexto. ¿Escritor? Generar aleatoriamente un registro.
generar aleatoriamente una acción
Entonces, ¿qué quiere generar, exactamente? Si se trata de una acción monádica, debe proporcionar una forma de generar acciones monádicas para su mónada particular, basándose en sus primitivas únicas. p.ej. Las acciones estatales generadas aleatoriamente deben construirse al azar a partir de las primitivas estatales get
y put
.
ponerlos juntos
Si utiliza las capacidades de QuickCheck para generar una función f
que produce una acción monádico, y el uso de QuickCheck para generar un contexto c
, entonces puede simplemente c >>= f
de ponerlos juntos. O simplemente puede generar la acción a
directamente, y hacer c >> a
.