La coincidencia de patrones


En ciencias de la computación , la coincidencia de patrones es el acto de verificar una secuencia dada de tokens para detectar la presencia de los constituyentes de algún patrón . En contraste con el reconocimiento de patrones , la coincidencia generalmente tiene que ser exacta: "será o no será una coincidencia". Los patrones generalmente tienen la forma de secuencias o estructuras de árbol . Los usos de la coincidencia de patrones incluyen generar las ubicaciones (si las hay) de un patrón dentro de una secuencia de tokens, generar algún componente del patrón coincidente y sustituir el patrón coincidente con alguna otra secuencia de tokens (es decir, buscar y reemplazar ).

Los patrones de secuencia (por ejemplo, una cadena de texto) a menudo se describen mediante expresiones regulares y se combinan mediante técnicas como el retroceso .

Los patrones de árbol se utilizan en algunos lenguajes de programación como una herramienta general para procesar datos en función de su estructura, por ejemplo, C# , [1] F# , [2] Haskell , [3] ML , Python , [4] Ruby , [5] Rust , [6] Scala , [7] Swift [8] y el lenguaje de matemáticas simbólicas Mathematica tienen una sintaxis especial para expresar patrones de árbol y una construcción de lenguaje para ejecución condicional y recuperación de valores basada en ella.

A menudo, es posible proporcionar patrones alternativos que se prueban uno por uno, lo que produce una poderosa construcción de programación condicional . La coincidencia de patrones a veces incluye soporte para guardias . [ cita requerida ]

Los primeros lenguajes de programación con construcciones de coincidencia de patrones incluyen COMIT (1957), SNOBOL (1962), Refal (1968) con coincidencia de patrones basada en árboles, Prolog (1972), SASL (1976), NPL (1977) y KRC (1981).

Muchos editores de texto admiten la coincidencia de patrones de varios tipos: el editor QED admite la búsqueda de expresiones regulares y algunas versiones de TECO admiten el operador OR en las búsquedas.