La concatenación es una operación simple pero muy utilizada que consiste en formar una nueva secuencia colocando una secuencia inmediatamente después de otra. En el lenguaje cotidiano, unir "snow" y "ball" da "snowball". En computación y matemáticas, la misma idea se aplica a cadenas de caracteres, listas y otras secuencias finitas: el resultado contiene los elementos de la primera secuencia seguidos por los de la segunda.
Características y propiedades básicas
La operación tiene un pequeño conjunto de propiedades estándar que facilitan el razonamiento. La más importante es que la concatenación es asociativa: (a+b)+c = a+(b+c), de modo que la agrupación no altera el resultado. En general no es conmutativa: a+b suele ser distinto de b+a. La secuencia vacía (a menudo escrita como "" en las cadenas) actúa como elemento identidad: ""+s = s+"" = s. En las secuencias finitas, la longitud del resultado es la suma de las longitudes de los operandos.
Notación y ejemplos comunes
Distintos contextos usan notaciones diferentes. La yuxtaposición (ab) o un punto son habituales en trabajos teóricos; muchos lenguajes de programación usan + para la concatenación de cadenas (por ejemplo, Python, Java y JavaScript). SQL utiliza el operador de doble barra (||) en los dialectos estándar. Algunos lenguajes ofrecen una función con nombre como concat(s1,s2) o rutinas de biblioteca (por ejemplo, strcat en C). En lenguajes funcionales, la concatenación de listas suele emplear símbolos como ++. Para una visión general y referencias, véase concatenación.
Concatenación en lenguajes formales y álgebra
En la teoría de lenguajes formales, la operación se extiende a los lenguajes (conjuntos de cadenas): la concatenación L1L2 es el conjunto de todas las cadenas formadas al tomar una cadena de L1 seguida de una de L2. La concatenación repetida da lugar a la estrella de Kleene, que denota cualquier número finito de repeticiones de un lenguaje, incluido cero. Desde el punto de vista algebraico, el conjunto de todas las cadenas sobre un alfabeto junto con la concatenación forma un monoide libre: una operación binaria asociativa con elemento identidad.
Usos, ejemplos y distinciones
La concatenación es ubicua en el procesamiento de texto, la programación, el formateo de datos y la coincidencia de patrones. Está detrás de operaciones como construir rutas de archivo, generar mensajes, unir tokens en compiladores y componer expresiones regulares. Se diferencia de la suma numérica, que combina valores, y de la composición de funciones, que encadena operaciones en lugar de unir secuencias. Entre las operaciones relacionadas están el entrelazado o la mezcla de secuencias, que conservan el orden relativo dentro de cada operando pero combinan elementos de ambos; esa operación es distinta de la concatenación directa.
Aspectos prácticos destacados
- Rendimiento: la concatenación repetida puede resultar costosa en algunos lenguajes debido a las copias; muchas plataformas ofrecen constructores o buffers para ensamblar resultados largos con eficiencia.
- Comportamiento de tipos: algunos lenguajes sobrecargan + para distintos tipos, lo que puede causar conversiones implícitas al concatenar valores no textuales.
- Casos límite: los operandos vacíos y los valores similares a nulos se comportan de manera distinta según el sistema y conviene tratarlos explícitamente para evitar sorpresas.