在阅读函数式编程时,我偶然发现了高阶函数的概念,据我所知,它是将函数作为参数和/或返回函数作为结果的函数。
在正则表达式的世界里有没有类似的方法?在正则表达式上运行的正则表达式以返回不同的正则表达式?
一个简单(但无用)的例子是:
(w)+(?=(er|re))
比赛对
cent(er|re)
将匹配替换为
calib
导致正则表达式
calib(er|re)
有没有人看到它在任何地方使用?谁能想到这种情况会很有用?
我个人没有,也真的想不出一个伟大的应用程序。我认为使用正则表达式要记住的重要事情是图灵完备的想法。函数式编程语言都是图灵完备的,因此函数式编程只是逻辑排序代码的另一种方式。当然,关于函数编程的优点、好处和可扩展性有很多争论。
正则表达式,因为它实际上只不过是一种文本匹配语法,并没有从函数式风格中获得真正的好处。这就是为什么HTML在正则表达式上使用图灵完备语言解析器进行解析的原因,正则表达式可以说编写起来更简单(如果可能的话)。