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 de type (et de notation)


Sujet :

Caml

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut [Débutant] Problème de type (et de notation)
    J'ai un problème avec un code équivalent à l'exemple qui suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    let func0 param =
      let var1 = func1 param in
      let var2 = func2 var1 in
      ...
    in
    Voici l'erreur que me donne le compilateur à propos de var1 lors de l'appel à func2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    This expression has type Type0:Type1 -> Type2
    but an expression was expected of type Type2
    Une idée de comment corriger cela ?

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Points : 39
    Points
    39
    Par défaut
    Salut,

    est-ce que c'est quelque chose comme ça que tu veux faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # let add x = x + 2 ;;
    val add : int -> int = <fun>
    # let mult x = x * 2 ;;
    val mult : int -> int = <fun>
    # let f x = 
      let add_loc = add x in
      let mult_loc = mult add_loc in
      print_int (mult_loc) ;;
    val f : int -> unit = <fun>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    En fait, pour l'instant je ne veux pas faire grand chose j'ai récupéré le code d'un étudiant de l'année précédente et je dois y apporter des modifications. Jusqu'à maintenant je n'ai encore rien modifié, je veux juste le compiler en l'état, seulement il y a déjà des erreurs...

    Je les corrige une par une depuis ce matin, étant débutant en ocaml cela n'est pas toujours simple, et sur celle là je sèche.

    Le code exemple dans mon premier message est vraiment équivalent au bout de code réel qui pose problème (sauf pour les noms), peux-tu me donner le nom de la fonctionnalité d'ocaml correspondant à cette utilisation du caractère ':' que j'aille cherché un peu à quoi cela correspond car pour l'instant ca ne me dit pas grand chose

    Merci du coup de main

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 933
    Points
    933
    Par défaut
    On ne va pas réussir à débuger un problème de type sur un bout de code qui pourrait parfaitement typer suivant les définition pour func1 et func2.

    Mais en gros, func1 attends deux arguments, et n'en a reçu qu'un, donc var1 est la fonction qui attends le dernier argument (celui de type Type1)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 32
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par TropMDR Voir le message
    On ne va pas réussir à débuger un problème de type sur un bout de code qui pourrait parfaitement typer suivant les définition pour func1 et func2.

    Mais en gros, func1 attends deux arguments, et n'en a reçu qu'un, donc var1 est la fonction qui attends le dernier argument (celui de type Type1)
    Oui le problème venait de func1, un paramètre optionnel (avec valeur par défaut) n'était pas pris en compte, d'où le paramètre manquant.

    Merci tout de même

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/05/2014, 22h31
  2. [Débutante] problème de définition de type
    Par Sara-SW dans le forum Caml
    Réponses: 5
    Dernier message: 20/04/2011, 17h51
  3. [Débutant] problème avec les types de variables
    Par mitmit dans le forum Débuter
    Réponses: 10
    Dernier message: 14/02/2008, 11h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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