Regex de orden superior
Frecuentes
Visto 122 veces
0
Al leer sobre programación funcional, me topé con el concepto de funciones de orden superior que, según tengo entendido, son funciones que toman funciones como argumentos y/o devuelven funciones como resultado.
¿Existe un equivalente a esto en el mundo de las expresiones regulares? ¿Un Regex que opera en un Regex para devolver un Regex diferente?
Un ejemplo simple (pero inútil) sería:
(\w)+(?=\(er\|re\))
partidos contra
cent(er|re)
reemplazando el partido con
calib
resultando en la Regex
calib(er|re)
¿Alguien ha visto esto usado en alguna parte? ¿Alguien puede pensar en una situación en la que esto sería útil?
1 Respuestas
2
Yo personalmente no tengo, y realmente no puedo pensar en una gran aplicación en mi cabeza. Creo que lo importante a tener en cuenta con expresiones regulares es la idea de Turing completo. Los lenguajes de programación funcional están todos completos y, por lo tanto, la programación funcional es simplemente otra forma de ordenar lógicamente el código. De acuerdo, hay muchos argumentos para hacer sobre los méritos y beneficios y la escalabilidad de la programación de funciones.
Regex, dado que en realidad no es más que una sintaxis de coincidencia de texto, no obtiene ningún beneficio real de un estilo funcional. Esta es la razón por la que HTML se analiza utilizando analizadores de lenguaje completos sobre una expresión regular que podría decirse que sería más simple de escribir (si fuera posible).
Respondido el 18 de junio de 12 a las 18:06
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas regex higher-order-functions or haz tu propia pregunta.