ListTools
MakeUnique
remove copies of elements from a list
Calling Sequence
Parameters
Description
Examples
MakeUnique(L, N, f, opt1, opt2, ...)
L
-
list
N
(optional) non-negative integer or infinity
f
(optional) procedure
opt1, opt2
(optional) extra arguments to procedure f
The MakeUnique(L) function removes all repeated elements from the list L.
The elements are reviewed in order from left to right. If an element matches a previous element, it is removed from the list.
The order of the elements in the returned list matches the order in the list L.
The MakeUnique(L, N) function retains N copies of matching elements in list L. If greater than N matching elements exist in L, they are removed.
By default, the elements in the list are compared by using boolean comparison. If argument f is specified, then f(x, y, opt1, opt2, ...) is called to check if element x and element y should be considered equal. This function should implement an equivalence relation (i.e. it should be reflexive, commutative, and transitive). If it is not, then the result may not be valid.
with⁡ListTools:
L≔1,2,3,4,3,2,3,4,5,4,3,4,5,6
MakeUnique⁡L
1,2,3,4,5,6
MakeUnique⁡L,0
MakeUnique⁡L,2
1,2,3,4,3,2,4,5,5,6
MakeUnique⁡L,∞
1,2,3,4,3,2,3,4,5,4,3,4,5,6
L≔0.,x−1⁢x+1,−0.,x2−1,0,−1−x⁢x+1
0.,x−1⁢x+1,−0.,x2−1,0,−1−x⁢x+1
MakeUnique⁡L,1,verify,expand
0.,x−1⁢x+1
ListTools:-MakeUnique([1,2,6,5,10,9,7,3,11], 2, proc(a,b) evalb(a-b mod 4 = 0); end proc );
1,2,6,5,7,3
See Also
ListTools[FindRepetitions]
type[list]
verify
Download Help Document