Generic Instance Method


Returns the difference needed to produce this collection’s ordered elements from the given collection, using the given predicate as an equivalence test.


func difference<C>(from other: C, by areEquivalent: (C.Element, Base.Element) -> Bool) -> CollectionDifference<Base.Element> where C : BidirectionalCollection, Self.Element == C.Element



The base state.


A closure that returns a Boolean value indicating whether two elements are equivalent.

Return Value

The difference needed to produce the reciever’s state from the parameter’s state.


This function does not infer element moves. If you need to infer moves, call the inferringMoves() method on the resulting difference.

Complexity: Worst case performance is O(n * m), where n is the count of this collection and m is other.count. You can expect faster execution when the collections share many common elements.