
alldifferent(?List)

   All elements of List are different

Arguments
   List                List of domain variables or atomic values

Type
   library(sd)

Description

	Constrains all list elements to be different atomic values.
	At call time, the list elements must already have domains or
	be instantiated.
	
	Operationally, the predicate delays until list elements become
	instatiated, and removes the corresponding values from the domains
	of the other list elements.
	


Examples
   
    ?- [X, Y, Z] &:: [a,b,c,d], alldifferent([X,Y,Z]), X = a.
    X = a
    Y = Y{[b, c, d]}
    Z = Z{[b, c, d]}
    There are 2 delayed goals.
    Yes (0.00s cpu)

    ?- X &:: [a,b,c], alldifferent([a,b,X]).
    X = c
    Yes (0.00s cpu)
    

See Also
   &\= / 2
