Questions / réponses

Syntax error sans AUCUNE raison

Syntax error sans AUCUNE raison

Vincent Ameeuw -
Atsakymų skaičius: 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.

Atsakymas į Vincent Ameeuw

Re: Syntax error sans AUCUNE raison

Marc Zeitoun -

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


Atsakymas į Vincent Ameeuw

Re: Syntax error sans AUCUNE raison

Simon Archipoff -

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.