failwith pour fonction récursive
Bonjour à tous,
Je suis débutante en programmation et je pense avoir mal assimilé l'utilisation du failwith dans une fonction récursive.
On utilise ici les arbres binaires:
type 'a arbre = F | N of 'a * 'a arbre * 'a arbre où la construction N(x,g,d) représente un arbre dont la racine est étiquetée par x et qui a comme fils gauche g (d pour droit); les feuilles F ne sont pas étiquetées. Toutes les étiquettes dans le fils g sont strictement inf à x et toutes les étiquettes dans le fils d sont strictement sup à x
max_abr : 'a arbre -> 'a prend un arbre binaire en argument t et renvoie le plus grand élément de t. Je cherche donc à lancer une exception si l'arbre entier est F
Code:
1 2 3
| let rec max_abr a = match a with
|F -> 0
|N(x,g,d) -> max x (max_abr d);; |
je ne sais pas où mettre le failwith puisque si je mets après le F il me renverra l'exception quelque soit l'arbre en argument?
Pourriez-vous me donner un petit indice svp?
Merci d'avance.