Structure begin end en Caml
delfre56
Messages postés
404
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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 :)
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:
- Structure begin end en Caml
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Exemple planning 1 week-end sur 3 - Télécharger - Outils professionnels
- Structure d'un rapport de stage - Guide
- Planning sur 7j pour 3 employés en 35h - Forum Excel
- Planning roulement 5 personnes - Forum Excel