day*_*day 4 prolog logic-programming
我想知道是否有任何Prolog实现允许在子句中进行左递归.我的直觉是,如果实现使用广度优先目标搜索,它可能支持左递归.但我不太确定.请注意,我并不关心效率.
Cap*_*liC 5
你的直觉是正确的,但Prolog使用设计深度优先搜索(见SLDNF分辨率在这里),并有很好的理由,那么限制不容易避免.
OTOH,Ciao Prolog提供适当的扩展.
您可以使用元解释器模拟广度优先递归,例如此处为左递归DCG(左递归语法是常见情况),但通常不是一种简单的方法.
IMO是可以近似/满足您的请求的最常见的扩展,是表格,您可以在YAP Prolog,XSB,B-Prolog中找到它.
归档时间:
12 年,5 月 前
查看次数:
173 次
最近记录: