
symbols_domain_indices(+Xs, ?Domain, -Is)

   Map symbolic domain variables/values to integer variables/values

Arguments
   Xs                  list of domain variables or values
   Domain              Variable or domain name
   Is                  Variable, will be bound to list of integers or integer variables

Type
   library(ic_symbolic)

Description

	Low-level primitive:
	For a list of domain variables or domain values, return the
	domain name and a list of integers or integer variables reflecting
	the corresponding integer index within the domain order.
	If the domain name is instantiated at call time, the list elements
	will be checked to be all from this domain.
	
	An error will be reported if not all list elements come from the same
	domain. If the list contained domain-less variables, then, as a side
	effect, these will be given a domain to be compatible with the other
	list elements.
	


Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Fail Conditions
   X is neither a symbolic domain variable nor a domain constant

Examples
   
    ?- symbols_domain_indices([we], D, Is).
    D = eclipse:weekday
    Is = [3]
    Yes (0.00s cpu)
    
    ?- X &:: weekday, symbols_domain_indices([X], D, Is).
    X = X{[mo, tu, we, th, fr, sa, su]}
    D = weekday
    Is = [X_ic{1 .. 7}]
    Yes (0.00s cpu)

    ?- X &:: weekday, symbols_domain_indices([X, Y, we], D, Is).
    X = X{[mo, tu, we, th, fr, sa, su]}
    Y = Y{[mo, tu, we, th, fr, sa, su]}
    D = eclipse:weekday
    Is = [X_ic{1 .. 7}, X_ic{1 .. 7}, 3]
    Yes (0.00s cpu)
    

See Also
   symbol_domain_index / 3, &:: / 2, domain / 1
