小编Rub*_*eal的帖子

prolog dcg限制

我想用DCG作为发电机.截至目前,语法是

s-->a,b.
a-->[].
a-->a,c.
c-->[t1].
c-->[t2].
b-->[t3].
b-->[t4].
Run Code Online (Sandbox Code Playgroud)

我想生成所有s地方的长度a< someNumber.

使用?- phrase(a,X),length(X,Y),Y<4.i可以获得 a少于4项的所有内容.但是,当所有组合都用尽时,系统(SWI-Prolog 6.2.5)似乎停滞不前.有时候,这里提出了类似的问题.但是,作为Prolog的新手,我无法使用上面的语法.有任何想法吗?

更新:(canrememberthename)有一个评论被删除,不知何故.无论如何,有人建议between(1,4,Y),length(X,Y),phrase(a,X).用来设定限制.将代码更改为后,这很有效a-->c,a.

prolog dcg failure-slice

6
推荐指数
2
解决办法
327
查看次数

标签 统计

dcg ×1

failure-slice ×1

prolog ×1