我正在编写一个程序,我需要查看字符串是否与特定模式匹配。现在我已经在 Prolog 中实现了这个作为规则 matchPattern(S),有超过 20 种不同的定义。
我最终通过模式检查谓词将所有二进制字符串运行到一定长度。该程序相当慢(正如Prolog通常那样),并且由于有很多不同的定义,我理想地希望对它们进行排序,以便最匹配的那些在排序中最早,因此由Prolog首先匹配,避免回溯尽我所能。
我现在正在使用 SWI Prolog,但我可以访问 SICStus,所以我愿意使用它或我可以免费获得的任何 Prolog 解释器。