Ocaml. Fonctions intégrées sur les listes (3/3)

On se propose de réécrire ici les fonctions intégrées de OCaml sur les listes.
On leur donnera le nom « my_func » si « func » est le nom de la fonction Caml à réécrire.
On écrira systématiquement des filtrages par cas.

Exercice 21.
Réécrire « union : ‘a list -> ‘a list -> ‘a list » (on pourra utiliser la fonction « mem »)
Rappel :  » union l1 l2″ concatène à « l2 » les éléments de « l1 » qui n’apparaissent pas dans « l2 ».
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 22.
Réécrire « intersect : ‘a list -> ‘a list -> ‘a list » (on pourra utiliser la fonction « mem »)
Rappel : « intersect l1 l2 » renvoie la sous-liste des éléments de « l1 » qui apparaissent dans « l2 ».
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 23.
Réécrire la fonction « index : ‘a -> ‘a list -> int
Rappel : « index a l » renvoie la position de la première occurrence de « a » dans « l ».
On lève une exception si « a » n’est pas trouvé.
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 24.
Réécrire la fonction « assoc : ‘a -> (‘a * ‘b) list -> ‘b
Rappel : « assoc a l » renvoie l’élément « b » du couple « (a,b) » dans lequel « a » apparaît pour la première fois.
On lève une exception si « a » n’est jamais le premier élément d’un couple de « l ».
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 25.
Réécrire la fonction « assq : ‘a -> (‘a * ‘b) list -> ‘b
Rappel : même fonctionnement que « assoc » mais en utilissant l’égalité physique.
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 26.
Réécrire « mem_assoc : ‘a -> (‘a * ‘b) list -> bool »
Rappel : dit si « a » est apparu comme premier élément d’un couple de « l ».
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 27.
Réécrire « split : (‘a * ‘b) list -> ‘a list * ‘b list »
Rappel : « split [(a1,b1);…;(an,bn)] » renvoie « ([a1;…;an], [b1;…;bn]) »
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 28.
Réécrire « combine : ‘a list * ‘b list -> (‘a * ‘b) list »
Rappel : « combine ([a1;…;an], [b1;…;bn]) » renvoie « [(a1,b1);…;(an,bn)] ».
On lève une exception si les longueurs sont différentes.
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 29.
Réécrire « map_combine : (‘a * ‘b -> ‘c) -> ‘a list * ‘b list -> ‘c list »
Rappel :  » map_combine [a1;…;an], [b1;…;bn] » renvoie « [f (a1,b1);…;f(an,bn)] ».
On lève une exception si les longueurs sont différentes.
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 30.
Réécrire la fonction « List.iter_combine : (‘a * ‘b -> unit) -> ‘a list * ‘b list -> unit »
Rappel : « List.iter_combine f([a1 ;… ;an], [b1 ;… ;bn]) » effectue « f(a1,b1) ;… ;f(an,bn); ».
Les résultats sont perdus. On lève une exception si les longueurs sont différentes.
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, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Author: Jean-Michel Ferrard

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