CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Haskell structure

lucas-x-ray2
lucas-x-ray2
Niveau 8
21 février 2019 à 17:30:25

Bonjour :),

Je sollicite votre aide car je suis bloqué sur un exercice d'entraînement à un ds d'Haskell.

Voici l'énoncé :

https://image.noelshack.com/fichiers/2019/08/4/1550766121-xml-pf.png

Voici ce que j'ai fais :

https://image.noelshack.com/fichiers/2019/08/4/1550766144-code-xml-pf.png

Mon problème c'est que je n'arrive pas à créer la bonne structure. Ce que j'ai fais ressemble plus à un emboîtement en profondeur alors qu'il faudrait pouvoir avoir plusieurs éléments de type balise au même niveau de profondeur. En fait comme décrit sur le schéma d'exemple. Je ne sais pas comment faire pour dire que je peux en avoir un nombre indéterminé au même niveau. Ma fonction taille n'est donc pas bonne non plus je pense.

Je ne sais pas si je suis assez clair.

Est-ce que vous pourriez m'aider svp ? Merci d'avance !

Niverolle
Niverolle
Niveau 10
21 février 2019 à 21:18:33

Ton utilisation de "nom" et de "nbfils" me fait un peu peur.
Là où ils sont placés, ce sont des variables de types : ils peuvent représenter par exemple Bool, String, Int, Float, etc. Là j'ai l'impression que dans ta tête ils jouent plutôt le rôle de valeurs, comme "toto" ou 4. Ici en l'occurrence tu ne vas pas avoir besoin d'utiliser des variables de types, mais revoir ton cours là-dessus, tu sembles avoir mal compris leur utilisation.

Si on retire les variables de type inutiles, ton truc donne :
data XML = Balise XML | Texte

Si tu veux que les balises puissent contenir un nom (de type String), tu le rajoutes en argument :
data XML = Balise String XML | Texte

Je pense que c'est plutôt ça que tu voulais écrire. Et effectivement comme tu dis là ce n'est pas un arbre (c'est une liste), puisque chaque balise a un seul fils. Si tu voulais deux fils, tu écrirais :
data XML = Balise String XML XML | Texte

Là tu obtiens un arbre binaire, avec à chaque niveau, exactement deux fils.
Il te reste à :
- Rajouter un contenu de type String dans les noeuds Texte (pour l'instant, ils ne contiennent rien)
- T'arranger pour avoir un nombre quelconque de fils (indice : par exemple, avec une liste de fils)

lucas-x-ray2
lucas-x-ray2
Niveau 8
21 février 2019 à 22:23:57

Merci beaucoup de m'avoir répondu et pour ta réponse détaillée !

Je vais essayer avec ce que tu m'a dis ! :)

lucas-x-ray2
lucas-x-ray2
Niveau 8
24 février 2019 à 12:13:18

Salut !

Je repost sur ce sujet pour dire que j'ai réussi mon exercice et que j'ai bien compris grâce à toi !

Merci beaucoup de ton aide ! :)

ps: j'avais un peu oublié de prévenir :rire2:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment