Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2007, à 10:17

reaver

plus petit élément --> Caml

Bonjour,
je sollicite votre aide sur une question en langage Caml.
Il s'agit de trouver le plus petit point de coordonnées (x;y) dans l'ordre lexicographique. Je ne comprend pas le programme qui répond à cette question.

---------------------------------------
let rec ppé (<) lst =
match lst with
|[a] -> a,[]
|t::q -> let pq, rq = ppé (<) q in
             if t<pq then t,q
             else pq,t::rq

---------------------------------------

je ne comprend vraiment rien à ce programme!
Je vous remercie d'avance pour votre aide smile

Hors ligne

#2 Le 28/05/2007, à 10:40

Babaôrom

Re : plus petit élément --> Caml

Fonction recursive avec 2 parametres de sortie (un element et une liste):
deux possibilites
- soit ta liste ne contient qu'un element, c'est donc le plus petit, tu renvoie donc a (plus petit element) et [] (liste vide)

- soit il y a plusieurs elements dans ce cas tu separe t premier element de q la queue de ta liste.

tu declares pq le plus petit element de q la queue de ta liste et rq  le reste de ta liste. Si t est plus petit que le plus petit de q c'est a dire pq, tu renvoie t et q

sinon tu renvoie pq et t::rq c'est a dire la liste composee de tout lst moins pq

En fait ta fonction renvoie d'un cote le plus petit element et de l'autre la liste de depart  dont on a enleve ce plus petit element.



Je crois ne pas me tromper mais ca fait plus de 4 ans que je n'ai pas touche a du Caml...

Hors ligne

#3 Le 28/05/2007, à 12:01

reaver

Re : plus petit élément --> Caml

Donc ici en fait le rq ne sert à rien ?

Hors ligne

#4 Le 28/05/2007, à 19:22

Yannick_LM

Re : plus petit élément --> Caml

Le mieux, c'est de prendre un papier et un stylo, un exemple, et de noter étape par étape ce qui se passe, calmement.
Ou alors d'utiliser un trace.


Trucs et astuces pour Vim
Ma web page  avec des trucs dessus ...

Hors ligne