[ library(sd) | Reference Manual | Alphabetic Index ]
?X &\= ?Y
X is different from Y
- X
- Variable or atomic value
- Y
- Variable or atomic value
Description
Constrains X and Y to be different. Operationally, the predicate
delays until one side is instantiated and the other has a domain.
The instantiated value is then removed from the domain.
Examples
?- X &:: [red,green,blue], X &\= red.
X = X{[blue, green]}
Yes (0.00s cpu)
?- X &:: [red, green, blue], X &\= yellow.
X = X{[blue, green, red]}
Yes (0.00s cpu)
?- X &:: [red,green], X &\= red.
X = green
Yes (0.00s cpu)
?- X &:: [red,green], X &\= red, X &\= green.
No (0.00s cpu)
?- X &\= red.
X = X
There is 1 delayed goal.
Yes (0.00s cpu)
?- X &\= red, X &:: [red,green].
X = green
Yes (0.00s cpu)
?- [X, Y] &:: [red, green, blue], X &\= Y.
X = X{[blue, green, red]}
Y = Y{[blue, green, red]}
There is 1 delayed goal.
Yes (0.00s cpu)
?- X &:: [red, green], Y &:: [blue, brown], X &\= Y.
X = X{[green, red]}
Y = Y{[blue, brown]}
There is 1 delayed goal.
Yes (0.00s cpu)
?- red &\= green.
Yes (0.00s cpu)
?- red &\= red.
No (0.00s cpu)
See Also
&\= / 3, &= / 2