Structure begin end en Caml

delfre56 Messages postés 350 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
Je dois rendre un projet en programmation il y a trois jours (je suis un peu à la bourre donc) et je bloque sur une fonction...
Je dois tracer une polyligne (ligne brisée à angles droits) dans la fenètre graphique de Caml Light. J'ai déjà défini un type polyligne comme ça :

type polyligne = Pvide | Poly of point list;;

let cons_poly(p,pl) = match pl with
|Pvide -> Poly [p]
|Poly l -> Poly (p::l);;

let premier_poly(pl) = match pl with
|Pvide -> failwith("la polyligne est vide")
|Poly ([]) -> failwith("la polyligne est vide")
|Poly (p::l) -> p;;

let reste_poly(pl) = match pl with
|Pvide -> failwith("la polyligne est vide")
|Poly ([]) -> failwith("la polyligne est vide")
|Poly (p::l) -> l;;

let est_poly_vide(pl) = match pl with
|Pvide -> true
|Poly ([]) -> true
|_ -> false;;

Déjà, si vous avez tout lu jusqu'ici et que vous voulez encore m'aider, c'est que vous êtes une personne en or. Je vous fait pleins de bisous. Bref, maintenant il me faut une fonction qui trace la polyligne. J'ai fait ça :

let rec polyligne(pl) = match pl with
|Pvide -> failwith "erreur : la liste est vide"
|Poly(r::[]) -> moveto(premier_poly(pl))
|_ -> begin
moveto(premier_poly(pl));
lineto(premier_poly(reste_poly(pl));
polyligne(reste_poly(pl))
end;;

Caml Light me renvoie une erreur de syntaxe sur le end;; et je ne comprend pas pourquoi. Je ne maîtrise pas bien le begin end alors si quelqu'un voyait une erreur ou, mieux, un autre moyen d'appeler plusieurs fonctions en même temps, je suis preneur :)
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Je n'ai pas pu tester car tu n'as pas mis tout le code, mais j'essaierai de mettre un
;
avant le
end;;
de ton bloc.
0