Some methods need to return both a result obtained from an operation on an
iterable as well as a new iterable that can be used for chaining other operations.
For example, isEmpty takes an iterable and checks whether it contains no items. This
may result in an item being consumed from the iterable. The new iterable returned by
isEmpty always contains all items of the original iterable.
Some methods need to return both a result obtained from an operation on an iterable as well as a new iterable that can be used for chaining other operations.
For example,
isEmpty
takes an iterable and checks whether it contains no items. This may result in an item being consumed from the iterable. The new iterable returned byisEmpty
always contains all items of the original iterable.