EN
importPour l'utiliser : import Data.Set

Set — ensembles finis, ordonnés et immuables

Synopsis
empty : Set a

L'ensemble vide.

singleton : a -> Set a

Un ensemble à un seul élément.

isEmpty : Set a -> Bool

True si l'ensemble n'a aucun élément.

size : Set a -> Nat

Le nombre d'éléments (O(1)).

member : Ord a => a -> Set a -> Bool

True si l'élément est dans l'ensemble.

insert : Ord a => a -> Set a -> Set a

Insère un élément (sans effet s'il est déjà présent).

delete : Ord a => a -> Set a -> Set a

Retire un élément (sans effet s'il est absent).

toList : Set a -> List a

Les éléments en liste, en ordre croissant.

fromList : Ord a => List a -> Set a

Bâtit un ensemble depuis une liste (les doublons s'effondrent).

union : Ord a => Set a -> Set a -> Set a

L'union (tous les éléments de l'un ou l'autre).

intersection : Ord a => Set a -> Set a -> Set a

L'intersection (les éléments des deux ensembles).

difference : Ord a => Set a -> Set a -> Set a

La différence (les éléments du premier ensemble absents du second).

isSubsetOf : Ord a => Set a -> Set a -> Bool

True si chaque élément du premier ensemble est dans le second.

filter : Ord a => (a -> Bool) -> Set a -> Set a

Ne garde que les éléments satisfaisant le prédicat.

map : Ord b => (a -> b) -> Set a -> Set b

Applique une fonction aux éléments. Contrairement à Functor, il faut Ord sur le type d'arrivée (l'image doit être re-triée et dédupliquée) : Set n'est PAS un Functor — c'est une fonction ordinaire (comme dans le Data.Set de Haskell).

foldr : (a -> b -> b) -> b -> Set a -> b

Replie les éléments en ordre croissant.

foldl : (b -> a -> b) -> b -> Set a -> b

Repli à gauche des éléments, en ordre croissant.