EN
importPour l'utiliser : import Data.Gen

Data.Gen — combinateurs conviviaux pour écrire des générateurs

Synopsis
constant : Int -> Int -> Range

constant lo hi : uniforme sur [lo, hi], rétrécit vers lo.

constantFrom : Int -> Int -> Int -> Range

constantFrom origin lo hi : uniforme sur [lo, hi], rétrécit vers origin.

int : Range -> Gen Int

Un entier uniforme dans l'intervalle, qui rétrécit vers son origine.

nat : Range -> Gen Nat

Un Nat uniforme dans l'intervalle (une borne négative est ramenée à 0). Le compagnon de int pour les indices et autres entiers naturels.

natRange : Nat -> Nat -> Gen Nat

Un Nat uniforme dans [lo, hi] (inclus), avec des bornes NAT — pas de toInt. Un intervalle inversé (lo > hi) est traité comme [lo, lo].

natBelow : Nat -> Gen Nat

Un Nat uniforme strictement inférieur à n, c.-à-d. dans [0, n) — la façon naturelle de choisir un indice valide dans une structure de longueur n. natBelow 0 produit 0 (il n'y a aucune valeur sous 0) ; l'appelant gère le cas vide.

bool : Gen Bool

Un booléen ; True rétrécit vers False.

char : Int -> Int -> Gen Char

Un caractère dans [lo, hi] (par point de code), qui rétrécit vers lo.

oneOf : List (Gen a) -> Gen a

Choisit un générateur uniformément (la liste doit être non vide).

element : List a -> Gen a

element xs engendre l'une des VALEURS données, uniformément.

listOf : Range -> Gen a -> Gen (List a)

Une liste dont la longueur est tirée de lenRange, chaque élément de g.

sample : Gen a -> List a

Un éventail de valeurs d'exemple (à taille fixe, sur quelques graines), pour qu'un étudiant VOIE ce qu'un générateur produit (oppi gen sample).