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 :

Double typage et récupération de valeurs


Sujet :

Caml

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Double typage et récupération de valeurs
    Bonjour à tous,
    Débutant en Caml, j'aurai besoin d'aide sur le code qui va suivre.
    Bon déjà, dites moi si je me trompe :
    -le 'e sert bien de substitution pour n'importe quel type de variable ?
    -L'association des deux types permet bien de créer une variable qui sera constitué d'un nombre infini de couples jusqu'à l'apparition du constructeur Fin ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type 'e couple = 'e* int;;
    type 'e ensemble = Fin | E of 'e couple *'e ensemble;;
    Alors le problème est que je voudrais récupérer la somme des valeurs des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    couples (_,cette_valeur)
    qui est de type int.

    J'ai essayé plusieurs choses mais j'ai seulement réussi à récupérer le int du premier couple avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let somme_des_ints (e: 'e ensemble) :int =
    match e with
    |Fin->0
    |E(cple,ens)->let (_,y)=cple in y;;
    Je n'arrive donc pas à accéder aux couples suivants jusqu'à l'apparition de 'Fin', auriez vous une idée de comment faire ? Je suppose qu'il faut utiliser une boucle, mais comment changer de couple à chaque fois ?

    Merci de votre aide !

  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 990
    Points
    2 990
    Par défaut
    comme première ligne de code je te propose let rec somme_des_ints e =

    et pour faire la somme je te propose d'utiliser l'opérateur +
    Je n'arrive donc pas à accéder aux couples suivants jusqu'à l'apparition de 'Fin', auriez vous une idée de comment faire ?
    Ces couples suivants sont dans ta variable ens
    Du même auteur: mon projet, le dernier article publié, le blog dvp et le jeu vidéo.
    Avant de poser une question je lis les règles du forum.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Et bien merci, j'avais pensé à la récursivité mais je visualisais mal comment ça marchait.
    Tout est bon, merci !

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

Discussions similaires

  1. [checkbox] Récupération des valeurs de checkbox
    Par chng001 dans le forum Struts 1
    Réponses: 13
    Dernier message: 07/09/2009, 20h31
  2. [struts] [checkbox] récupération des valeurs cochées
    Par abourell dans le forum Struts 1
    Réponses: 16
    Dernier message: 10/06/2005, 20h58
  3. Réponses: 8
    Dernier message: 09/03/2005, 10h47
  4. récupération de valeur de lien
    Par sex-sansbol dans le forum ASP
    Réponses: 3
    Dernier message: 07/06/2004, 10h43
  5. Récupération de valeurs d'un tableau
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 25/03/2004, 10h59

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