【问题标题】:Haskell regular expressionsHaskell 正则表达式
【发布时间】:2016-02-22 22:35:52
【问题描述】:

我是学习 Haskell 的新手,一直在使用《Haskell-函数式编程技巧第 3 版》这本书,并且一直停留在第 12 章关于正则表达式的内容,尤其是问题 12.16:

实现以下功能: option,plus:: RegExp->RegExp - 其中选项 e 匹配 e 的 0 或 1 次出现,加上 e 匹配 e 的 1 次或多次出现。

我不知道从哪里开始,所以任何帮助都将不胜感激!谢谢

【问题讨论】:

  • 我不知道这会对特定的练习有所帮助,但regex-applicative 提供了一个特别令人愉快的 API 来处理常规语言。

标签: regex haskell


【解决方案1】:

根据star函数,plus函数应该是这样的:

plus :: RegExp -> RegExp
plus e = e <*> star e

其中a &lt;*&gt; b 表示“a 后跟 b”,star 匹配 0 次或多次出现。

尝试将epsilon(|||) 用于option 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多