ioCode
Les indispensables
Listes • Exercices 1A
- Écrire une fonction1IndiceParcourir la liste récursivement en incrémentant un compteur à chaque élément.
length : 'a list -> intqui calcule la longueur d'une liste. Par exemplelength [1; 2; 3]renvoie3. - Écrire une fonction2IndiceComparer l'élément recherché avec la tête de la liste puis poursuivre la recherche.
mem : 'a -> 'a list -> boolqui vérifie si un élément appartient à une liste. Par exemplemem 2 [1; 2; 3]renvoietrue. - Écrire une fonction3IndiceIgnorer l'élément correspondant puis reconstruire la liste restante.
rm : 'a -> 'a list -> 'a listqui supprime toutes les occurrences d'un élément dans une liste. Par exemplerm 2 [1; 2; 3; 2]renvoie[1; 3]. - Écrire une fonction4IndiceDécrémenter l'indice à chaque étape et échouer avec failwith sur une liste vide.
nth : int -> 'a list -> 'aqui extrait l'élément à une position donnée, en échouant avec une message d'erreur si l'indice est invalide. Par exemplenth 1 [10; 20; 30]renvoie20. - Écrire une fonction5IndiceRemplacer la levée d'exception par le retour de None sur liste vide et l'autre sortie est Some ...
option_nth : int -> 'a list -> 'a optionqui extrait l'élément à une position donnée, en renvoyantNonesi l'indice est invalide. Par exempleoption_nth 5 [10; 20; 30]renvoieNone. - Écrire une fonction6IndiceUtiliser un accumulateur et une fonction auxiliaire interne pour accumuler les éléments dans l'ordre inverse.
rev : 'a list -> 'a listqui inverse l'ordre des éléments d'une liste. Par exemplerev [1; 2; 3]renvoie[3; 2; 1].
Langage
Console initialisée. En attente de l'interpréteur...