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

Haskell Discussion :

Question en Haskell


Sujet :

Haskell

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 27
    Points
    27
    Par défaut Question en Haskell
    Bonjour, dans mon cours :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    data ABR a = Nœud (ABR a) a (ABR a)
                 | Feuille
    Le but étant de faire un arbre mais le probléme ne vient pas de là
    Je ne me rappel plus ce que veut dire la 2éme ligne "| Feuille" ?
    Si quelqu'un a une idée..

    merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data ABR a = Noeud (ABR a) a (ABR a) | Feuille
    Signifie que le type "ABR a" a deux constructeurs : Noeud et Feuille, Noeud prend trois paramètres, un "ABR a", un "a" et un "ABR a" et Feuille n'en prend aucun.

    Autrement dit ton arbre de "a" est soit un Noeud avec un fils gauche (un arbre de "a"), une étiquette (de type "a") et un fils droit (un arbre de "a"), soit une Feuille sans fils et sans étiquette.

    "a" est une variable de type, c'est à dire qu'il peut s'agir de n'importe quel type, Int, String, ABR [Float]...

    Les constructeurs de type peuvent être utilisé dans les motifs pour déconstruire ton arbre ou en tant que fonction pour le construire, par exemple ici tu peux voir les deux usages dans un fmap pour ton arbre, qui applique une fonction à toutes les étiquettes de ton arbre et renvoie l'arbre résultant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    fmap :: (a -> b) -> ABR a -> ABR b
    fmap f (Noeud fg etiquette fd) = Noeud (fmap f fg) (f etiquette) (fmap f fd)
    fmap _ Feuille = Feuille
    --
    Jedaï

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 29
    Points : 27
    Points
    27
    Par défaut
    Merci pour cette réponse complete et rapide

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

Discussions similaires

  1. Débutante en Haskell, question sur les types.
    Par avator dans le forum Haskell
    Réponses: 6
    Dernier message: 22/09/2008, 02h24
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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