I would like to use predicates like:
range(X,0,5) range(X,4,200) range(X,-1000000,1000000) dom_range(X,-1000000,1000000)
with value:
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]).
How to encode it correctly in Prolog (given the effectiveness of the solution - recursion depth, etc.)?
The solution is expected to run on GNU-Prolog.
PS Question inspired by this question .