FORUM Chez Nous


  Software - Réseau


  Programmation


  [O Caml] le chameau va me tuer

 




3 utilisateurs inconnus

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[O Caml] le chameau va me tuer

n°855
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 14:26:38  profilanswer
 

on doit programmer un interprète, on peut déclarer des formules façons lambda calcul ou façon fonction.
Mais au niveau de l'arbre syntaxique, il faut que ce soit identique :sweat:  
 
c chiant paske là je travaille parallèle sur 2 fichiers à la base de tout :
 
. abbsynt.mli où sont déclarés les types utilisés dans l'arbre syntaxique
. parser.mly où sont déclarées les actions sémantiques en fonction des règles de grammaire.
 
dans abbsynt.mli j'ai :


 
type expression = Abst of (ident*ident)*expression | ...
 


 
 
dans parser.mly je veux pouvoir utiliser une variable que j'ai appelé "function_body__00" :


%{
open Abssynt
 
let function_body__00;;  
         
%}
 
...
 
l_param:
     ident COLON ident l_param   { Abst( ($1,$3),$4 ) }
  |  ident COLON ident                  { Abst( ($1,$3), function_body__00 ) }
;
 
...
 
abstraction :
     BLASH ident COLON ident POINT abstraction_body
                                                { Abst( ($2,$4), $6 ) }
;
 
...
 
function_ :
     FUN l_param ARROW function_body     { let function_body__00 = $4 in $2 }
;
 
...
 


 
mais il accepte pas ma déclaration où que je la mette  :cry:


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
mood
Google
Posté le 09-05-2003 à 14:26:38  profilanswer
 

n°856
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 14:27:51  profilanswer
 

Souk a écrit :

MoOoN > c normal que ta declaration, le compilateur il en veuille pas: toute variable doit etre typee, donc un truc du genre  let trucBidule ;; n'est pas accepte.
 
Ensuite, les variables en Caml spabien  :non: sauf quand on fait de l'imperatif, mais generalement on fait du fonctionnel, vachement plus mieux :bounce: [:cache]  


oui mais là g absolument besoin de le faire  :cry:


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°857
souk
touriste
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:04:58  profilanswer
 

tu as absolument besoin de declarer une variable non typee ? :heink:  
 
 [:sisicaivrai]

n°858
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:29:21  profilanswer
 

Souk a écrit :

tu as absolument besoin de declarer une variable non typee ? :heink:  
 
 [:sisicaivrai]  


je crois que j'ai trouvé une manière de contourner le problème
 
j'ai augmenté le type Expression avec NoExpression
 
et je déclare ma variable ainsi :
 


%{
open Abssynt
 
let function_body__00 = ref NoExpression ;;
       
%}
...
 
 
l_param:
     ident COLON ident l_param   { Abst( ($1,$3),$4 ) }
   |  ident COLON ident                     { Abst( ($1,$3), !function_body__00 ) }
 
...
 
function_ :
     FUN l_param ARROW function_body     { let function_body__00 := $4 in $2 }
;
 
...
 


 
j'en ai fait une référence sinon elle ne changeais pas de valeur :/


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°859
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:30:42  profilanswer
 

elle ne change toujours pas de valeur  :cry:


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°860
souk
touriste
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:32:31  profilanswer
 

ben ref oui, sinon tu definis une constante :D
 
mais je peux pas trop aider vu que je sais pas exactement ce que tu dois faire ...  [:spamafote]  
 
m'enfin si t'as d'autres problemes, n'hesite po ! et poste tes mli  ;)  
 
bon courage  :bounce:  :hello:

n°861
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:37:27  profilanswer
 

même en ref elle veut pas changer
je craque :cry:  :cry:  :cry:  :cry:


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°862
souk
touriste
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:41:53  profilanswer
 

bouge pas, je jette un coup de neuille [:poasson kanar 2]

n°863
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:53:31  profilanswer
 

Souk a écrit :

bouge pas, je jette un coup de neuille [:poasson kanar 2]  


tu veux le source complet ?


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°864
souk
touriste
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 15:59:37  profilanswer
 

plusieurs questions d'abord :  
 
NoExpression, c'est une valeur, pas un type ?
 
pour modifier la valeur de ta variable, tu utilises bien ":=" pas juste "=" ?
 
let n = ref 5;;
-> une variable entiere initialisee a 5
 
n := !n * !n;;
-> je mets sa valeur a n*n
 
si la reponse a ces deux questions est OUI, alors le source va peut etre m'aider un peu plus :D
 
chouette, ca me manquait le Caml, ca fait bien quelques mois que j'en n'ai pas trop fait


Message édité par souk le 09-05-2003 à 16:01:04
n°865
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 16:11:24  profilanswer
 

Souk a écrit :

plusieurs questions d'abord :  
 
NoExpression, c'est une valeur, pas un type ?


 
dans abbsynt.mli :
 

type expression = Abst of (ident*ident)*expression
   (* | Func of param_l*expression  *)
      | Seq of expression*expression
      | Ident of ident
             | Reduce of ident*expression
             | Substit of ident*expression*expression
             | NoExpression


 
tous les autres types sont corrects, testés et OK.
 
 

Souk a écrit :


pour modifier la valeur de ta variable, tu utilises bien ":=" pas juste "=" ?


oui, j'ai la doc pour vérifier ce genre de détails ;)  
 

Souk a écrit :


let n = ref 5;;
-> une variable entiere initialisee a 5
 
n := !n * !n;;
-> je mets sa valeur a n*n
 
si la reponse a ces deux questions est OUI, alors le source va peut etre m'aider un peu plus :D


 
donc je vais te la passer en MP
 

Souk a écrit :


chouette, ca me manquait le Caml, ca fait bien quelques mois que j'en n'ai pas trop fait


 
C'est pas du Caml mais de l'Objective Caml v3.06  :o  
mais c gentil de m'aider [:mooon]


Message édité par mOoOn le 09-05-2003 à 16:12:12

---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°866
souk
touriste
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 16:14:38  profilanswer
 

MoOoN a écrit :


 
 
C'est pas du Caml mais de l'Objective Caml v3.06  :o  
mais c gentil de m'aider [:mooon]


 
vi vi, mais caml splu drole a dire que ocaml :D
 
tombe bien, c la 3.06 que j'ai aussi  [:xp1700]

n°869
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 09-05-2003 à 22:14:26  profilanswer
 

ça y est mon parser fait ce que je veux :sol:  
 
Souk merci de ton aide :jap:  
 
Prochain épisode :
je m'attaque au problème suivant la vérification de type :/


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°872
souk
touriste
Note : 0/5 pour 0 vote
Posté le 10-05-2003 à 06:23:08  profilanswer
 

 [:walaziz]

n°883
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 10-05-2003 à 11:16:10  profilanswer
 


t'inquiète pour ce problème, la première étape consiste à comprendre un chapitre du livre "Term rewriting and all that" de Nipkow
Je pleure pas encore :)


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°884
souk
touriste
Note : 0/5 pour 0 vote
Posté le 10-05-2003 à 15:43:20  profilanswer
 

oh mais je m'inquiete pas, mais c'etait un tel plaisir de refair du caml :love: :love: :love:

n°1032
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 22-05-2003 à 18:44:03  profilanswer
 

ça y est le parser marche nickel
( même si le prof a rajouté des contrainte :nrv: une semaine après qu'on l'aient fini, donc on a dû le refaire  :sweat:  )


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°1034
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 22-05-2003 à 19:48:36  profilanswer
 

Sanctuaire a écrit :


J'aime bien ta signature... mais on est forcement obligé de te contrarier pour les :p ? ( sdommage pour la suite quand meme :( )


ya  :p  et **CENSURE**  :D


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°1158
FMR-Hunter
↑ ЋìⁿЌ, ↑ ©ªŋ
Note : 0/5 pour 0 vote
Posté le 30-05-2003 à 11:59:15  profilanswer
 

:sweat: comment j'ai jamais fait de caml...
 
 
et a la vue de ce tomik, je crois que c pas demain la veille  :sweat: ²


---------------
Life is a Ben Harper's album...
 
Today's song:
Amen Omen
n°1169
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 30-05-2003 à 14:04:39  profilanswer
 

FMR-Hunter a écrit :

:sweat: comment j'ai jamais fait de caml...
 
 
et a la vue de ce tomik, je crois que c pas demain la veille  :sweat: ²


le Caml c bien j'adore sauf quand je pète les plombs
 
quand les exemples sont expliqués, ça coule de source, ce qui n'est pas le cas de camllex et camlyacc des modules de Ocaml dont les exemples sont pourris :fou:.


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°1278
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 07-06-2003 à 13:23:51  profilanswer
 
n°1279
souk
touriste
Note : 0/5 pour 0 vote
Posté le 07-06-2003 à 13:36:31  profilanswer
 

MoOoN a écrit :


le Caml c bien j'adore sauf quand je pète les plombs
 
quand les exemples sont expliqués, ça coule de source, ce qui n'est pas le cas de camllex et camlyacc des modules de Ocaml dont les exemples sont pourris :fou:.


 
non, sbien camllex et camlyacc, j'ai decouvert quand t'avais ton pb, j'aime bien  [:spamafote] :devil:
 
 

n°1280
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 07-06-2003 à 13:50:48  profilanswer
 

Souk a écrit :


 
non, sbien camllex et camlyacc, j'ai decouvert quand t'avais ton pb, j'aime bien  [:spamafote] :devil:
 

mais la résolution de certains pb tq l'associativité est alambiquée


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog
n°1281
souk
touriste
Note : 0/5 pour 0 vote
Posté le 07-06-2003 à 13:53:07  profilanswer
 

L'associativite ? comme dans a + (b + c) = (a + b) + c ?

n°1305
mOoOn
back from ... loin
Note : 0/5 pour 0 vote
Posté le 07-06-2003 à 16:32:39  profilanswer
 

Souk a écrit :

L'associativite ? comme dans a + (b + c) = (a + b) + c ?

dans le cas présent il d'agit d'expression de lambda calcul, c + chiant parce que les expressions sont associatives à droite : f g h = (f g) h
mais les abstractions le sont à gauche, exemple :
 
\x. f g = \x. (f g) mais c pas du tout (\x. f) g
 
donc il nous faut filtrer ça et c space la méthode qu'à trouver mon binôme
 
 


---------------
Humains, symbiotes ou IAs, qui vaincra ? - viendez broder, le blog

Aller à :
Ajouter une réponse

  FORUM Chez Nous


  Software - Réseau


  Programmation


  [O Caml] le chameau va me tuer