elementsEqual(_:by:)
Returns a Boolean value indicating whether this sequence and another sequence contain equivalent elements in the same order, using the given predicate as the equivalence test.
func elementsEqual<OtherSequence>(_ other: OtherSequence, by areEquivalent: (Self.Element, OtherSequence.Element) throws -> Bool) rethrows -> Bool where OtherSequence : Sequence
Parameters
- other
A sequence to compare to this sequence.
- areEquivalent
A predicate that returns
true
if its two arguments are equivalent; otherwise,false
.
Returns
true
if this sequence and other
contain equivalent items, using areEquivalent
as the equivalence test; otherwise, false.
Overview
At least one of the sequences must be finite.
The predicate must be a equivalence relation over the elements. That is, for any elements a
, b
, and c
, the following conditions must hold:
areEquivalent(a, a)
is alwaystrue
. (Reflexivity)areEquivalent(a, b)
impliesareEquivalent(b, a)
. (Symmetry)If
areEquivalent(a, b)
andareEquivalent(b, c)
are bothtrue
, thenareEquivalent(a, c)
is alsotrue
. (Transitivity)