在Haskell中存储正则表达式字符串的最佳方法是什么?

Nic*_*unt 4 regex haskell coding-style

我有一个函数remove,它将正则表达式作为字符串和另一个字符串.它从第二个字符串中删除与正则表达式匹配的任何内容并返回它.

目前,我正在remove使用文字正则表达式字符串调用该函数,例如:

remove "(my|a)?string" "Test string" -- returns "Test "
Run Code Online (Sandbox Code Playgroud)

这个程序将会增长,并且会有很多正则表达式要调用,并且每个程序都可以在整个程序中使用多次.我应该像这样存储它们:

myregex = "(my|a)?string"
Run Code Online (Sandbox Code Playgroud)

或者我应该制作数据类型还是其他什么?

谢谢

Ank*_*kur 5

一种选择是使用部分申请,如:

remove regex str = <generic code to remove the regex expression from string>
Run Code Online (Sandbox Code Playgroud)

对于要应用的每种特定类型的正则表达式,您可以编写如下函数:

removeName = remove "<name_regex>"
Run Code Online (Sandbox Code Playgroud)

等等.然后你可以使用像这样的功能

removeName "myname"
Run Code Online (Sandbox Code Playgroud)