我想使用如下谓词:
range(X,0,5)
range(X,4,200)
range(X,-1000000,1000000)
dom_range(X,-1000000,1000000)
Run Code Online (Sandbox Code Playgroud)
含义:
range(X,0,5) :- member(X,[0,1,2,3,4,5]).
range(X,4,200) :- member(X,[4,5,6...198,199,200]).
range(X,-1000000,1000000) :- member(X,[-1000000,...,1000000]).
dom_range(X,-1000000,1000000) :- domain(X, [-1000000,...,1000000]).
Run Code Online (Sandbox Code Playgroud)
如何在Prolog中很好地编码(考虑解决方案性能 - 递归的深度等)?
预计解决方案将在GNU-Prolog上运行.
PS问题受到这个问题的启发.
在一个Prolog实现中缺少一些谓词,在其他实现中可用.
我们可以实现缺少谓词,让我们称之为"Prolog兼容层".
你知道Prolog的"Prolog兼容性层"(特别是对于GNU-Prolog)吗?
请按以下方式构建答案:
PS问题受另一个问题启发:Prolog语法问题.