[ library(ic_global) | The ECLiPSe Libraries | Reference Manual | Alphabetic Index ]
sorted(?List, ?Sorted, ?Positions)
Sorted is a sorted permutation (described by Positions) of List
- List
- List of domain variables or integers
- Sorted
- List of domain variables or integers
- Positions
- List of domain variables or integers
Calling Modes
- sorted(+, ?, ?)
- sorted(?, +, ?)
- sorted(?, ?, +)
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