
sorted(?List, ?Sorted, ?Positions)

   Sorted is a sorted permutation (described by Positions) of List

Arguments
   List                List of domain variables or integers
   Sorted              List of domain variables or integers
   Positions           List of domain variables or integers

Type
   library(ic_global)

Description
    Declaratively:  Sorted is a sorted permutation of List.  Positions
    is a list whose elements range from 1 to N (where N is the length
    of the lists) indicating the position of each unsorted list
    element within the sorted list.  The positions are all different. 
    The three lists are constrained to have the same length.

    Operationally:  the elements in all three lists are constrained
    such that their domains are consistent with the declarative
    meaning.

    Two of the three arguments can be uninstantiated or partial lists
    at call time.
    

Examples
   
    ?- length(Xs,4), Xs::0..100, sorted(Xs,Ys,Ps), Xs = [8,20|_].

    Xs = [8, 20, _346{[0..100]}, _359{[0..100]}]
    Ys = [_445{[0..8]}, _427{[0..20]}, _537{[8..100]}, _635{[20..100]}]
    Ps = [_882{[1..3]}, _895{[2..4]}, _908{[1..4]}, _921{[1..4]}]
    

See Also
   sorted / 2, ordered / 2
