OCaml. Exercices sur les listes (2/3)

Exercice 11.
Écrire une fonction « concat : ‘a list -> ‘a list -> ‘a list » qui concatène deux listes, donc qui fait exactement la même chose que l’opérateur infixe intégré « @ », qui s’écrit aussi « (@) » en mode préfixé.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 12.
Écrire une fonction « invlist : ‘a list -> ‘a list » qui inverse l’ordre des éléments d’une liste (donc qui fait exactement la même chose que la fonction intégrée « List.rev »).
Indication : utiliser une fonction récursive locale « aux » prenant en arguments deux listes x et y et renvoyant la liste formée de la concaténation de « y inversée » puis de x.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 13.
Écrire une fonction « maxlist : ‘a list -> ‘a » qui renvoie le plus grand élément d’une liste.
La liste passée en argument pourra contenir des entiers, des flottants, des chaînes, des caractères (en tout cas tous les types acceptés par la fonction intégrée « max »).
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 14.
Écrire une fonction « minmaxlist : ‘a list -> ‘a * ‘a » qui renvoie le couple formé par le plus petit et plus grand élément d’une liste.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 15.
Écrire une fonction « min2list : ‘a list -> ‘a * ‘a » qui retourne le couple des deux plus petits éléments.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 16.
Écrire une fonction « nocs :: ‘a list -> ‘a -> int » qui renvoie le nombre de fois qu’un élément figure dans une liste.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 17.
Écrire une fonction « ocsmin : ‘a list -> ‘a * int  » qui renvoie le couple formé par l’élément minimum d’une liste et le nombre de fois où il apparaît.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 18.
Écrire une fonction « lastlist : ‘a list -> ‘a » renvoyant le dernier élément d’une liste.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 19.
La fonction « exists » teste si un élément d’une liste satisfait à un prédicat.
La syntaxe est « exists test liste », avec « test » de type « ‘a -> bool » et « liste » de type « ‘a list », et la réponse est un booléen.
Écrire une fonction « myexists : (‘a -> bool) -> ‘a list -> bool » implémentant la fonction « exists ».
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Exercice 20.
Écrire deux fonctions « firstoccur :’a list -> (‘a -> bool) -> ‘a -> ‘a » (resp. « lastoccur ») renvoyant le premier (resp. le dernier) élément satisfaisant à un test logique dans une liste (et une valeur par défaut si aucun élément n’est trouvé), avec la syntaxe « firstoccur test liste def » et  » lastoccur test liste def ».
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, des Quiz (plus de 600 questions), etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (6 mois), 25€ (1 an) ou 35€ (2 ans).

Author: Jean-Michel Ferrard

Professeur de mathématiques en classe préparatoire aux grandes écoles.