Haskell : Fonction Duplique

Exercices Corriges en Haskell : Fonction  Duplique

Exercice corriges Programmation Fonctionnelle (Haskell)

Écrire une fonction en Haskell nommée duplique qui duplique tous les éléments d’une liste donnée. duplique "Panda" = "PPaannddaa"

Haskell pandacodeur

Correction :

duplique :: [a] -> [a]
duplique [ ] = [ ]
duplique (x:xs) = x:x:duplique xs

Explications :

La fonction duplique prend en entrée une liste d'éléments de type quelconque (a) et retourne une nouvelle liste où chaque élément de la liste d'entrée est dupliqué.

Dans cette implémentation, on utilise la notation des motifs pour extraire le premier élément de la liste (x) et le reste de la liste (xs). On duplique l'élément x en ajoutant deux occurrences de celui-ci à une nouvelle liste, puis on concatène cette nouvelle liste avec la liste obtenue en appelant récursivement la fonction duplique sur le reste de la liste (xs).

Le premier cas traite la situation où la liste d'entrée est vide, en retournant une liste vide.

Ainsi, la fonction duplique retourne la liste obtenue en dupliquant chaque élément de la liste d'entrée.

Notez que cette implémentation utilise la récursivité pour traiter chaque élément de la liste d'entrée, ce qui peut entraîner un coût en temps et en espace important pour les grandes listes. Cependant, elle est simple et élégante et fonctionne pour les listes de tout type.

Autre Solution :

Une autre façon d'implémenter la fonction duplique en Haskell consiste à utiliser la fonction concatMap, qui applique une fonction à chaque élément d'une liste et concatène les résultats :

duplique :: [a] -> [a]
duplique xs = concatMap (\x -> [x,x]) xs

Explications :

La fonction duplique prend en entrée une liste d'éléments de type quelconque (a) et retourne une nouvelle liste où chaque élément de la liste d'entrée est dupliqué.

Dans cette implémentation, on utilise la fonction concatMap avec une fonction lambda qui prend un élément x de la liste d'entrée et retourne une liste contenant deux occurrences de x. La fonction concatMap applique cette fonction lambda à chaque élément de la liste d'entrée et concatène les résultats pour former la nouvelle liste.

Ainsi, la fonction duplique retourne la liste obtenue en dupliquant chaque élément de la liste d'entrée.

Notez que cette implémentation est plus concise que la précédente et utilise une fonction de la bibliothèque standard Haskell, mais elle peut être moins intuitive pour les débutants. Elle est cependant efficace et fonctionne pour les listes de tout type.

Si vous avez trouvé les exercices corrigés en Haskell de JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam