Syntax error caml

Discutez d'informatique ici !
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 19:42

Syntax error caml

par Rockleader » 30 Nov 2015, 18:08

Bonsoir,

le code suivant me retourne une erreur de syntaxe; le problème étant que l'interpréteur ne m'indique pas à quel niveau...du coup c'est pas très clair tout ça =)

De plus, c'est la première fois que j'essaie de définir une fonction dans une autre il se peut donc que ce soit lié.

Code: Tout sélectionner
let rec arbreAncetrePossibleLv3 = fun l ->
   let rec read = fun l1 -> fun l2 ->
      match(l1,l2) with
      | ([],[]) -> []
      | ([],x::lbis) -> x::(read [] lbis)
      | (x::lbis,[]) -> x::(read lbis [])
      | (x1::lbis1,x2::lbis2) -> x1::x2::(read lbis1 lbis2))
   in
   match l with
   | [] -> []
   | a::l2 -> match a with
         |(b,i,c) -> read(arbreAncetrePossibleLv2 (pouvAncetrePossible (pouvoir(feuilleToCouple b))) (pouvoir(feuilleToCouple b)))
               (arbreAncetrePossibleLv2 (pouvAncetrePossible (pouvoir(feuilleToCouple c))) (pouvoir(feuilleToCouple c)))
                                    ::(arbreAncetrePossibleLv3 l2);;


L'idée c'est que l'on travaille sur une liste d'arbre.
Pour chaque élément de ma liste, je veux créer la liste des sous arbre gauche et droite possible avec arbreAncetrePossibleLv2. Du coup, je me retrouve avec 2 sous liste que je dois aussi parcourir.

D'où l'idée de la fonction read en interne qui est censé parcourir les deux sous listes

Bon, clairement, je suis pas sûr du tout de mon algo ni quoi que ce soit, je réfléchis d'ailleurs à une façon peut être plus simple de le faire; cependant, j'aimerais quand même comprendre ce qui provoque l'erreur de syntaxe dans ce code là...

Voici la signature de Lv2 si cela peut aider

Code: Tout sélectionner
val arbreAncetrePossibleLv2 :
  ('a * 'a) list -> 'a -> (string * 'a) arbre list =


Merci d'avance !
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite