[ library(ldsb) | Reference Manual | Alphabetic Index ]
# ldsb_indomain(?X)

Instantiates an LDSB integer variable to an
element of its domain.
*X*
- Variable or integer

## Description

Simple predicate for instantiating an
integer LDSB variable to an element of its domain. It
starts with the smallest element, and upon backtracking
tries successive elements until the entire domain has
been explored, at which point the predicate fails.

If X is already a ground integer, then this predicate
simply succeeds exactly once without leaving a
choicepoint.

This predicate can be used with the search/6
predicate (see example).

### Resatisfiable

yes
## Examples

go :-
dim(Xs, [3]),
Xs #:: 1..5,
collection_to_list(Xs, L), sum(L) #= 10,
ldsb_initialise(Xs, [variables_interchange]),
( search(Xs, 0, input_order, ldsb_indomain, complete, []),
writeln(Xs),
fail
; true ).

## See Also

ldsb_indomain_set / 1, ldsb_initialise / 2