IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

[Débutant]Problème include .


Sujet :

Caml

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 63
    Points
    63
    Par défaut [Débutant]Problème include .
    Bonjour,
    J'ai un petit problème avec les includes, si j'inclue un fichier functionPrint.ml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    let print (s:string) =
      print_endline s 
    ;;
    dans un autre (main.ml) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    include FunctionPrint;;
    print "test";;
    Et que j'execute, rien ne ce passe, alors qu'il devrait être écrit "test" :
    > ocaml functionPrint.ml main.ml
    >
    Là, je comprend pas, j'ai essayer avec open à la place d'include, toujours rien .
    Pourriez vous m'aider ?
    Merci .

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    Lu ici:
    http://caml.inria.fr/pub/docs/manual...manual023.html
    The toplevel system is started by the command ocaml, as follows:

    ocaml options objects # interactive mode
    ocaml options objects scriptfile # script mode
    If scriptfile is given on the command-line to ocaml, the toplevel system enters script mode: the contents of the file are read as a sequence of Objective Caml phrases and executed, as per the #use directive (section 9.2). The outcome of the evaluation is not printed.
    Ce que tu devrais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > ocaml
    # #use "functionPrint.ml";;
    # print "test";;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Oui, mais il est impossible de compiler un fichier avec ocamlc avec ça .

    Je viens de trouver la solution :
    ocamlc -pp "camlp4o pa_extend.cmo" -I +camlp4 oo.ml

    Merci .

  4. #4
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Non, tu n'a absolument pas besoin de CamlP4 pour imprimer un simple "test" sur la sortie standard.

    La fonction print n'existe pas.

    Je te conseille de regarder ici :

    http://caml.inria.fr/pub/docs/manual...ervasives.html

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 30
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 79
    Points : 63
    Points
    63
    Par défaut
    Citation Envoyé par InOCamlWeTrust Voir le message
    Non, tu n'a absolument pas besoin de CamlP4 pour imprimer un simple "test" sur la sortie standard.

    La fonction print n'existe pas.

    Je te conseille de regarder ici :

    http://caml.inria.fr/pub/docs/manual...ervasives.html
    Je veux pas écrire quoi que ce soit, mais juste inclure un fichier dans un autre . Mon truc avec la fonction print n'est qu'un exemple .

  6. #6
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 991
    Points
    2 991
    Par défaut
    Je veux pas écrire quoi que ce soit, mais juste inclure un fichier dans un autre .
    Pour inclure c'est la directive #use, c'est interactif, il n'y a pas moyen (et sans doute aucune raison) de le faire à la compilation.

    Le mot-clé include existe mais il ne sert pas du tout à inclure un fichier dans un autre fichier, il sert à inclure un type de module dans un autre type de module.

  7. #7
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Pas que... on peut inclure une implantation de module dans une autre, mais il est traitre, car les modules que l'on inclut doivent préalablement avoir été compilés.

    En tous cas, moi je ne recommande pas son utilisation.

  8. #8
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Points : 1 412
    Points
    1 412
    Par défaut
    Et que j'execute, rien ne ce passe, alors qu'il devrait être écrit "test" :
    En effet, et ce comportement ne me semble pas très intuitif. La raison se trouve dans "man ocaml" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ocaml [ -unsafe ] [ -I lib-dir ] [ object-files ] [ script-file ]
    On ne peut passer qu'un seul fichier script en argument à ocaml (c'est dommage qu'il n'y ait pas d'erreur si on se trompe).

    Dans ton implémentation, utilise "open". Pour tester, ne passe pas par ocaml, mais par ocamlc. Ne passe pas non plus par l'option -pp.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > ocamlc functionPrint.ml main.ml
    > ./a.out

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant]problème d'ouverture d'un include
    Par Bifoloss dans le forum MFC
    Réponses: 6
    Dernier message: 18/03/2006, 02h17
  2. Réponses: 2
    Dernier message: 28/04/2004, 12h25
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 14h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 16h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo