map : (a -> b) -> List a -> List b
Applique une fonction à chaque élément d'une liste, en gardant l'ordre. map f [1, 2, 3] = [f 1, f 2, f 3]
import nécessaire.map : (a -> b) -> List a -> List bfoldr : (a -> b -> b) -> b -> List a -> bfoldrLazy : (a -> Lazy b -> b) -> Lazy b -> List a -> bfoldl : (b -> a -> b) -> b -> List a -> breverse : List a -> List alength : List a -> NatisEmpty : List a -> Boolhead : List a -> Maybe atail : List a -> Maybe (List a)filter : (a -> Bool) -> List a -> List asplitAt : Nat -> List a -> (List a, List a)length : String -> Natmap : (a -> b) -> List a -> List b
Applique une fonction à chaque élément d'une liste, en gardant l'ordre. map f [1, 2, 3] = [f 1, f 2, f 3]
foldr : (a -> b -> b) -> b -> List a -> b
foldrLazy : (a -> Lazy b -> b) -> Lazy b -> List a -> b
Pli à droite qui peut s'arrêter : f reçoit le pli du reste en attente (Lazy b) et ne le calcule que si elle le lit ; la graine z n'est lue que si le pli va jusqu'au bout. foldrLazy (\x rest -> p x || rest) False xs s'arrête au premier p x.
foldl : (b -> a -> b) -> b -> List a -> b
Pli à gauche : accumule depuis la gauche. foldl f z [a, b, c] = f (f (f z a) b) c Préférer foldl pour les sommes/produits (récursif terminal).
reverse : List a -> List a
Renverse une liste.
length : List a -> Nat
Nombre d'éléments d'une liste, sous forme de Nat.
isEmpty : List a -> Bool
La liste est-elle vide ?
head : List a -> Maybe a
Récupère sans risque le premier élément (Nothing si vide).
tail : List a -> Maybe (List a)
Récupère sans risque tous les éléments sauf le premier (Nothing si vide).
filter : (a -> Bool) -> List a -> List a
Ne conserve que les éléments qui satisfont un prédicat. filter even [1, 2, 3, 4] = [2, 4]
splitAt : Nat -> List a -> (List a, List a)
Scinde une liste après ses n premiers éléments : le préfixe de longueur n (ou la liste entière si elle est plus courte) apparié avec le reste, en un seul parcours. splitAt 2 [1, 2, 3, 4] = ([1, 2], [3, 4])
length : String -> Nat
Nombre de caractères d'une chaîne, sous forme de Nat. Un length nu fonctionne sur les deux : length s sur une String, length xs sur une liste.