Ocaml. Fonctions intégrées sur les listes (2/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 11.
Réécrire « List.fold_left2 : (‘a -> ‘b -> ‘c -> ‘a) -> ‘a -> ‘b list -> ‘c list -> ‘a »
Rappel : « List.fold_left2 f a [b1;…;bn] [c1;…;cn] » renvoie « f(…(f(f a b1 c1) b2 c2)…) bn cn »
On lève l’exception 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 12.
Réécrire la fonction  » List.fold_right2 : (‘a -> ‘b -> ‘c -> ‘c) -> ‘a list -> ‘b list -> ‘c -> ‘c
Rappel : « List.fold right2 f [a1;…;an] [b1;…;bn] c » renvoie « f a1 b1 (f a2 b2 (… (f an bn c)…)) »
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 13.
Réécrire la fonction « flat_List.map : (‘a -> ‘b list) -> ‘a list -> ‘b list
Rappel : « flat_List.map p [a1;…;an] » renvoie « (p a1) && (p a2) &&…&& (p an) »
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 14.
Réécrire la fonction « List.for_all : (‘a -> bool) -> ‘a list -> bool
Rappel : « List.for_all p [a1;…;an] » renvoie « (p a1) && (p a2) &&…&& (p a_n)) »
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 15.
Réécrire la fonction « exists : (‘a -> bool) -> ‘a list -> bool
Rappel : « exists p [a1;…an] » renvoie « (p a1) || (p a2) || … || (p an) »
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 16.
Réécrire la fonction « List.mem ‘a -> ‘a list -> bool »
Rappel : « mem a l » renvoie « true » si et seulement si « a » is structurellement égal à un élément 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 17.
Réécrire la fonction « List.memq ‘a -> ‘a list -> bool
Rappel : « memq a l » renvoie « true » si et seulement si « a » is physiquement égal à un élément 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 18.
Réécrire la fonction « except : ‘a -> ‘a list -> ‘a list » (on pourra utiliser l’opérateur @)
Rappel : « except a l » renvoie la liste « l » privée de la première occurrence de « a » (égalité structurelle).
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 19.
Réécrire la fonction « exceptq : ‘a -> ‘a list -> ‘a list » (on pourra utiliser l’opérateur @)
Rappel :  » exceptq a l » renvoie la liste « l » privée de la première occurrence de « a » (é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 20.
Réécrire « subtract : ‘a list -> ‘a list -> ‘a list » (on pourra utiliser la fonction « mem »)
Rappel : « subtract l1 l2 » renvoie « l1 » privée des éléments apparaissant 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).

Author: Jean-Michel Ferrard

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