Re: [PFA] Projet OCAML - Master M2 Informatique- Module PFA
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Bonjour. Je réponds à la liste aussi ; votre problème pourrait être commune à des autres étudiants aussi. On 01/12/2011 02:03 PM, Nejdet ALTINISIK wrote:
Monsieur,
nous avons un problème pour le projet, et notamment pour les operateurs unaires. Nous avons dans le fichier trivialml.ml, la fonction ci-dessous :
let unary_operator operator_name valeur = match (operator_name,valeur ) with | ("left", int*int ) -> 0;;
en fait, valeur est soit un int*int, ou soit directement un bool. Mais lorsque l'on tape notre fonction ci-dessus, le compilateur indique une erreur : Syntax error: ')' expected, the highlighted '(' might be unmatched Si on enlève le int*int et que l'on met int, ca marche mais évidement, ca n'a plus de sens. Pourriez-vous nous aiguiller.
L'erreur de syntaxe est là parce que votre programme est vraiment mal formé, c'est-à-dire il ne respecte pas la grammaire. Regardez la grammaire du langage dans le premier papier que j'ai distribué : int * int n'est pas un motif correct (il s'agit d'un type correct mais vous avez besoin d'un motif, pas d'un type). Le compilateur souligne l'astérisque et la deuxième parenthèse fermée. L'erreur Syntax error: ')' expected, the highlighted '(' might be unmatched est référée à l'astérisque, parce que le parseur a découvert que le programme n'est pas bien formé lorsque il a trouvé l'astérisque : en fait p * p n'est pas un motif bien formé. Probablement vous entendiez p, p . Donc le compilateur a dit : «je m'attendais une parenthèse fermée après «int», mais vous m'avez donné une astérisque». Peut-être ce n'est pas très important dans ce cas, mais remarquez aussi que «int» est un motif bien formé, même si (en tant que motif) il n'a rien à voir avec les entiers : int est aussi une variable comme tous les autres. Exemple : # match 42 with int -> int;; - - : bool = int # match true with int -> int;; - - : bool = true # match ["boo"] with int -> int;; - - : string list = true J'espère vous avoir été utile. Très cordialement, - -- Luca Saiu http://www-lipn.univ-paris13.fr/~saiu GNU epsilon: http://www.gnu.org/software/epsilon Marionnet: http://www.marionnet.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk0tsd8ACgkQvzOavibF0oZrhgCfd6GqSuz8VEyjk2ly+vBqCKcs 8dEAn0b7CkHPvlab1wToWO+rXscTIa9H =YZkU -----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 01/12/2011 02:51 PM, Luca Saiu wrote:
Le compilateur souligne l'astérisque et la deuxième parenthèse fermée.
Je me suis trompé, excusez-moi : le compilateur souligne l'astérisque et la deuxième parenthèse *ouverte*. Il s'agit de la parenthèse qui est «unmatched». - -- Luca Saiu http://www-lipn.univ-paris13.fr/~saiu GNU epsilon: http://www.gnu.org/software/epsilon Marionnet: http://www.marionnet.org -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk0tsrcACgkQvzOavibF0obQUwCfWUUtjRxjD5A6FDgsfRqelaTk eFwAoIYgSNsSPSO+UC+C+6/NeuDosftW =+RFn -----END PGP SIGNATURE-----
participants (1)
-
Luca Saiu