Questions / réponses

Syntax error sans AUCUNE raison

Syntax error sans AUCUNE raison

Ameeuw Vincent írta időpontban
Válaszok szám: 3

Bonjour,

En codant la fonction print_tree vue en TD :

type treem =
  | Empty
  | Bin of int * int * treem * treem;;

let spacing depth = String.make depth ' ';;

let print_node value n depth =
  print_string ((spacing depth)^"->"^(string_of_int value)^"("^(string_of_int n)^")\n");;

let print_tree tree =
  let rec aux t depth = match t with
    | Empty -> print_string ((spacing (4*depth))^"->E\n");
    | Bin(val, cnt, left, right) ->
      aux right (depth+1);
      print_node val cnt (4*depth);
      aux left (depth+1);
  in aux tree 0;;


J'obtiens cette erreur :

Characters 129-132:
  | Bin(val, cnt, left, right) ->
^^^
Error: Syntax error: operator expected.


Si quelqu'un sait d'où peut provenir l'erreur, je suis preneur. Merci.

Válasz erre: Ameeuw Vincent

Re: Syntax error sans AUCUNE raison

Zeitoun Marc írta időpontban

Bonjour,

C'est simplement le fait que val est un mot clé du langage. Le remplacer par v résoudra le problème de syntaxe (et le code m'a l'air correct, a priori).

--mz


Válasz erre: Ameeuw Vincent

Re: Syntax error sans AUCUNE raison

Archipoff Simon írta időpontban

Bonjour,

Il y a bien une raison mais elle est un peu traître, il est vrai.

"val" est un mot clé du langage, on ne peut pas s'en servir comme identifiant.

Votre éditeur de code devrait le mettre en gras ou d'une autre couleur, au même titre que let, in, while, if, then, else, fun, etc.