[ 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