Module between
:- use_module(library(between)).
Predicates that generate integers
These predicates can be used to reason about integers in a reduced domain that follow some property. library(clpz)
provides another way of reasoning about integers that may also be interesting.
between(+Lower, +Upper, -X).
Given Lower and Upper are both integer numbers, true iff X is an integer so that Lower =< X =< Upper. Can be used both to check if X is between Lower and Upper or to generate an integer between Lower and Upper.
Examples:
?- between(10, 20, 15).
true.
?- between(10, 20, 25).
false.
?- between(3, 5, X).
X = 3
; X = 4
; X = 5.
gen_nat(?N)
True iff N is a natural number.
gen_int(?N)
True iff N is an integer.
repeat(+N)
Succeeds N times. This predicate is only included for compatibility and should not be used because it lacks a declarative interpretation.
numlist(?Upper, ?List)
True iff List is the list of integers [1, ..., Upper]. Example:
?- numlist(X, Y).
X = 1, Y = [1],
; X = 2, Y = [1,2]
; X = 3, Y = [1,2,3]
; ... .
numlist(?Lower, ?Upper, ?List).
True iff List is a list of the form [Lower, ..., Upper]. Example:
?- numlist(5, 10, X).
X = [5,6,7,8,9,10].