Concatenación de cadenas de texto

Haskell:
Concatenación de cadenas de texto

Cómo hacerlo:

-- Concatenando con el operador ++
saludoCompleto = "Hola, " ++ "mundo!"
-- saludoCompleto es "Hola, mundo!"

-- Concatenando varias cadenas con ++
frase = "Haskell " ++ "es " ++ "genial."
-- frase es "Haskell es genial."

-- Usando concat y listas
nombres = concat ["Pedro", " y ", "Juana"]
-- nombres es "Pedro y Juana"

-- Usando la función unwords para unir palabras con espacios
palabrasUnidas = unwords ["Listas", "de", "palabras", "unidas."]
-- palabrasUnidas es "Listas de palabras unidas."

Profundización:

Históricamente, la concatenación de cadenas es tan antigua como los primeros lenguajes de programación, la necesidad de manipular texto ha sido siempre fundamental. En Haskell, el operador ++ es la herramienta más directa para este fin, pero como Haskell es perezoso (lazy evaluation), concatenar listas largas puede ser ineficiente. Aquí entra concat, que maneja mejor listas de cadenas, o la función unwords que es ideal para unir palabras con espacios.

Hay alternativas más sofisticadas como el uso de Data.Text para trabajar con texto de manera más eficiente, especialmente en programas que realizan una gran cantidad de manipulaciones de texto.

En cuanto a implementación, Haskell maneja las cadenas como listas de caracteres, por lo que la concatenación implica recorrer la primera lista hasta el final antes de adjuntar la segunda, y así sucesivamente, lo cual es importante tener en cuenta en términos de desempeño.

Ver Además: