OCAML Tri par selection du minimum

Discutez d'informatique ici !
Gregoirdedu89
Messages: 1
Enregistré le: 24 Mar 2014, 17:22

OCAML Tri par selection du minimum

par Gregoirdedu89 » 24 Mar 2014, 17:25

Bonjour, je souhaite créer une fonction selectionne : ('a -> 'a -> bool) -> 'a list -> 'a.

(selectionne inf 1) calcule le minimum de la liste 1 par rapport à la fonction de comparaison inf (passée en paramètre).

Par exemple, (selectionne (<=) ['b' ; 'a' ; 'd' ; 'c']) retourne le caractère 'a', et (selectionne (>) [2 ; 1 ; 4 ; 3] retourne l'entier 4.

Voila donc j'ai essayé plusieurs méthodes tels deux fonctions réunis
insere_comparaison et tri_insertion mais ça ne retourne pas les types que je souhaite...



Monsieur23
Habitué(e)
Messages: 3966
Enregistré le: 01 Oct 2006, 19:24

par Monsieur23 » 24 Mar 2014, 17:41

Aloha,

Tu peux définir une fonction auxiliaire Foo de type (a -> a -> Bool) -> a list -> a -> a qui prend en plus de ta fonction un objet X de type a, et qui renvoie le plus grand objet de la liste qui soit plus grand que X. La partie principale du code serait

Foo f (u::L) X = si (f u X) alors (Foo f L u) sinon (Foo f L X).

Tu n'as plus qu'à définir ta fonction comme (Foo f L (L.hd)).
« Je ne suis pas un numéro, je suis un homme libre ! »

Doraki
Habitué(e)
Messages: 5021
Enregistré le: 20 Aoû 2008, 13:07

par Doraki » 25 Mar 2014, 19:09

t'es supposé avoir quoi quand tu demandes selectionne (<=) [] ?

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 11 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite