2012-05-03 3 views
0

При чтении по функциональному программированию я наткнулся на концепцию функций высшего порядка, которые, насколько я понимаю, выполняют функции в качестве аргументов и/или возвращают функции в качестве их результатов.Regex более высокого порядка

Есть ли эквивалент этому в мире регулярных выражений? Регулярное выражение, которое работает в Regex, чтобы вернуть другое Regex?

простой (но бесполезно) примером может быть:

(\w)+(?=\(er\|re\)) 

матчи против

cent(er|re) 

замену в матче с

calib 

в результате Regex

calib(er|re) 

Кто-нибудь видит, как это используется в любом месте? Может ли кто-нибудь подумать о ситуации, когда это было бы полезно?

ответ

2

У меня лично нет, и на самом деле я не могу придумать отличное приложение оттуда. Я думаю, что важно иметь в виду с регулярным выражением - идея Тьюринга закончена. Функциональные языки программирования все завершены, и, следовательно, функциональное программирование - это просто еще один способ логического заказа кода. Конечно, есть много аргументов в пользу достоинств и преимуществ и масштабируемости программирования функций.

Regex, учитывая, что это действительно не что иное, как синтаксис, сопоставляющий текст, не получает реальной выгоды от функционального стиля. Вот почему HTML анализируется с использованием полного набора парсеров языка над регулярным выражением, которое, возможно, было бы проще написать (если это было возможно).

Смежные вопросы