Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2785 connectés 

  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Boucle for en Caml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle for en Caml

n°1819594
lezert
Posté le 30-11-2008 à 20:40:17  profilanswer
 

Bonjour,
 

Code :
  1. let jouer
  2. (lejeu : jeu)  (* Le jeu sur lequel on travaille *)
  3. : unit
  4. = for i=0 to 2 do
  5.     print_string "Coup à jouer: ";
  6.     let clavier = read_line() in
  7.        print_int (convertirCoup clavier);
  8.        let lejeu=(jouerCoup lejeu clavier) in
  9.        print_jeu lejeu;
  10.   done;;


 
 
Mon problème c'est qu'à chaque tour de boucle, je reparts du jeu du début (celui passé en paramètre)  
et non pas du nouveau jeu modifié suite au coup jouer !!!!
Je ne vois pas comment faire  pour corriger ce problème.
 
Merci d'avance piur votre aide !!!

mood
Publicité
Posté le 30-11-2008 à 20:40:17  profilanswer
 

n°1819629
masklinn
í dag viðrar vel til loftárása
Posté le 30-11-2008 à 21:33:38  profilanswer
 

C'est parfaitement normal, ocaml c'est pas C.
 
Quand tu écris

Code :
  1. let lejeu=(jouerCoup lejeu clavier) in print_jeu lejeu


tu crées un binding "lejeu" local à ton let, ça ne modifie pas le jeu externe [:spamafote]
 
Au lieu d'utiliser un for tu devrais utiliser une fonction récursive. Il n'y a de toute façon pas de raison d'utiliser une boucle for dans un langage fonctionnel.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1819721
lezert
Posté le 01-12-2008 à 09:47:05  profilanswer
 

Merci.
Mais je dois vraiment passé par cette boucle for.  
En effet, je ne vois pas comment faire à cause des différents affichage et du read_line qui sont de type unit pour faire cette fonction autrement qu'en impératif !!!
Donc j'aimerai savoir comment modifié ce petit morceau de code pour qu'il ne pre nne pas à chaque tour de boucle le jeu passé en paramètre mais le nouveau jeu obtenu en jouant un coup !!!
Merci d'avance


Message édité par lezert le 01-12-2008 à 09:51:50
n°1819736
lezert
Posté le 01-12-2008 à 10:07:08  profilanswer
 

Merci Masklinn !!!
Je suis passé par de la recursivité et ça marche super bien !!!
Encore merci

n°2189759
chrislains
Posté le 12-05-2013 à 13:45:49  profilanswer
 


je rencontre un probleme avec ma fonction union dont voici l'erreur affiche " Error: This expression has type ensemble * ensemble
       but an expression was expected of type ensemble "
 
 
voici ma fonction qui a pour but de calcule l’union de deux ensembles
 
  let union a b =
     let rec aux abr acc =
       match abr with  
         Vide,Vide -> Vide
       |Noeud(c,i,ag,ad),Vide -> abr
       |Vide,Noeud(c2,i2,ag2,ad2) -> acc
       |Noeud(c,i,ag,ad),Noeud(c2,i2,ag2,ad2) -> if (Ord.compare i i2) != 0 then (ajoute i2 ( aux ag ( aux ad acc)))
  else (aux ag ( aux ad acc))
     in aux a b
 
besoin d'aide svp


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Boucle for en Caml

 

Sujets relatifs
[supprimer]Problème de boucle dans un batchBoucle avec Checkbox
[PERL] boucle imbriquéesprogrammation en caml light
Aide boucle While Encore ?? je pete un cable ... :'([batch] un bète SET puis ECHO dans une boucle for, mais non...
[o'caml] fonctions de formatage de chaines[résolu]boucle de classement selon valeur tableau
problème pour faire du Caml avec Emacs 
Plus de sujets relatifs à : Boucle for en Caml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR