Bonjour,toujours dans ma découverte de Caml, je dois créer une fonction qui vérifie si une liste est triée.
Voici ce que j'ai fait :
Ma dernière ligne est fausse,je ne sais pas comment l'écrire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 let l=[3;4;5;6] ;; let p= (fun x y -> x < y) let rec triee l p = if l = [] then true else if ((p (hd l) (hd (tl l))) = false ) then false else (true & (triee (tl l) p ));;
J'explique mon algo. Si ma liste est nulle alors ma liste est triée je renvoie true. Si le premier élément de ma liste et le second appliqué à ma fonction p donne faux(le premier élément est supérieur au second) alors je renvoie false.
C'est ce qui vient ensuite que j'ai du mal à définir.
Ce que je voudrais faire c'est renvoyer true "et" triée "reste de la liste".
Je pensais mon algo bon mais ça ne fonctionne pas.
Merci de votre aide !
Partager