Concaténation de chaînes de caractères

Haskell:
Concaténation de chaînes de caractères

How to: (Comment faire:)

-- Concaténation simple avec l'opérateur (++)
helloWorld = "Hello" ++ " " ++ "World!"
-- helloWorld vaut "Hello World!"

-- Concaténer avec la fonction concat et une liste de chaînes
sentenceList = concat ["Haskell", " ", "est", " ", "cool."]
-- sentenceList vaut "Haskell est cool."

-- Utiliser concatMap pour ajouter un espace après chaque mot sauf le dernier
sentenceSpace = concatMap (++" ") ["Haskell", "est", "vraiment", ""] ++ "cool."
-- sentenceSpace vaut "Haskell est vraiment cool."

Deep Dive (Plongée Profonde)

Historiquement, concaténer des chaînes en Haskell n’est pas différent d’autres langages; ça reste une opération fondamentale. Haskell possède une approche fonctionnelle avec des opérateurs et des fonctions dédiées.

Alternatives:

  • (++) est idéal pour de courtes concaténations.
  • concat et concatMap sont efficaces avec des listes de chaînes.
  • intercalate de Data.List ajoute une chaîne entre chaque élément d’une liste lors de la concaténation, très utile pour des motifs répétitifs.

Détails d’implémentation:

  • Les chaînes en Haskell sont des listes de caractères, la concaténation revient donc à fusionner des listes, ce qui n’est pas le plus performant pour de longs textes.
  • Pour de meilleures performances et manipulations, des bibliothèques comme Text de Data.Text (pour du texte mutable) ou ByteString sont souvent recommandées.

See Also (Voir Aussi)