[ library(tentative) | Reference Manual | Alphabetic Index ]
tent_set(?X, +TV)
Set X's tentative value to TV
- X
- Any term, typically a variable
- TV
- A (nonvar) term
Description
Give a variable (or several variables within a term) a tentative value.
A tentative value cannot be itself a variable.
- If X is a variable without tentative value, it will be given the
tentative value TV. In addition, its violatedness count will be
initialised to 0.
- If X already has a tentative value, its tentative value is
changed to TV. (Note that this may trigger further computation!)
The violatedness count remains unchanged.
- If X is already instantiated, TV must be a strict instance of X.
Variables within X are given tentative values from the corresponding
instantiated parts of TV.
Modes and Determinism
- tent_set(-, +) is det
- tent_set(+, +) is semidet
Fail Conditions
TV is not an instance of X
Exceptions
- (4)
- TV is not sufficiently instantiated
Examples
?- tent_set(X, 27).
X = X{27 -> 0}
Yes (0.00s cpu)
?- tent_set(X, 27), tent_set(X, 99).
X = X{99 -> 0}
Yes (0.00s cpu)
?- tent_set(foo(X), foo(27)).
X = X{27 -> 0}
Yes (0.00s cpu)
?- tent_set(X, Y).
instantiation fault in X tent_set Y
Abort
See Also
tent_get / 2, has_tent_value / 1, tent_fix / 1