【发布时间】:2010-09-15 18:11:15
【问题描述】:
我最近完成了一个生成字符串列表的项目,我想知道最好的方法。
字符串生成是上下文相关的,以确定它是否可以接受(它是游戏中的一系列游戏,所以你必须知道最后一次游戏是什么)
我这样做的方式是使用传递上下文参数和术语的函数,如果可以接受,则递归继续,如果不是,则终止(因为不能接受进一步的字符串。)函数还收到一个“长度”参数以确保它最终终止
基本上这是生成一种语言(一定长度)接受的每个可能的字符串。
现在,我让这个工作,甚至相当好和干净,但我想知道是否有更好的方法来做到这一点。具体来说,“状态机” monad 在生成上下文相关语法方面是否能很好地工作?或至少类似的东西?想要启动像 parsec 这样的问题似乎很简单,还有其他结构可以有效地操纵语言吗?
任何想法都将不胜感激。
【问题讨论】:
-
您可以发布您创建的任何代码吗?更容易理解你的意思。