Bonjour
Citation :
match l with
| "a+b" -> (int_of_char `a`) + (int_of_char `b`);
| "a*b" -> (int_of_char `a`) * (int_of_char `b`);
Le pattern matching ne fonctionne absolument pas comme ça, il permet de «matcher» en fonction de la structure abstraite d'un type, par exemple si une liste est vide ou non. Une chaîne de caractères restera toujours une chaîne de caractères, donc il est absolument impossible de faire un tel pattern matching (le premier motif reconnaîtra uniquement la chaîne de 3 caractères "a+b")
Sinon, effectivement, pour le reste il ne respecte pas les priorités. Tu pourrais par exemple essayer de faire en sorte que ta fonction "oper" renvoie en priorité la position du signe + si des additions et des multiplications sont faites au même niveau.
Fractal
