Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Femme Profil pro
    Inscrit en
    octobre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : octobre 2012
    Messages : 1
    Points : 0
    Points
    0

    Par défaut [Caml] Listes et changements

    Bonjour tout le monde,

    Je rencontre un probleme dans un exercice de caml quiu est le suivant :

    On a :
    - une liste de ce style
    Code :
    let l = [("Hugo", 42.);("Moro",89.);("Zoro",1.)]
    - un type exigé vis a vis de notre fonction :
    Code :
    string- > string -> (string *'a) list -> (string * 'a) list = <fun>
    - une fonction pour changer le type d'une valeur en String.


    On doit :
    - Créer une fonction dans laquelle on entre le nom d'une personne, le nom qu'on souhaite lui attribuer pour remplacer l'ancien et la liste l.

    Voila ce que j'ai et ça marche pas je comprends pas pourquoi... (la liste est defini plus haut dans mon code).

    Code :
    1
    2
    3
    4
    5
    6
    7
     let rec change_name ancien_nom nouveau_nom l =
     let ancien_nom = String.lowercase ancien_nom and nouveau_nom = String.lowercase nouveau_nom in
     match l with
       |[]-> []
        |(m,w)::l when m = ancien_nom -> (nouveau_nom,w)::l
        |(m,w)::l when m > ancien_nom -> (m,w)::l
        |(m,w)::l when m < ancien_nom -> (m,w)::(name ancien_nom nouveau_nom l);;
    Merci d'avance...

  2. #2
    Membre Expert Avatar de prgasp77
    Homme Profil pro Yankel Scialom
    Ingénieur en systèmes embarqués
    Inscrit en
    juin 2004
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Nom : Homme Yankel Scialom
    Âge : 26
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : juin 2004
    Messages : 1 084
    Points : 1 578
    Points
    1 578

    Par défaut

    Bonjour, plusieurs choses :
    1. « Ça marche pas » n'aide pas beaucoup. Une erreur de compilation ou le résultat d'un test un peu mieux ;
    2. Tu nommes plusieurs variables avec le même nom, c'est franchement déconseillé, et il s'avère qu'ici c'est la cause de ton « ça marche pas » ;
    3. Je te conseille de découvrir la fonction List.map qui te permettrait d'écrire ta fonction en une seule (un peu longue) ligne.


    Cdlt,

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •