Regex de orden superior

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?

preguntado el 03 de mayo de 12 a las 17:05

1 Respuestas

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 or haz tu propia pregunta.