Generic Instance Method

flatMap(_:)

Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.

Declaration

Available when Bound conforms to Strideable and Bound.Stride conforms to SignedInteger.

Parameters

`transform`

A closure that accepts an element of this sequence as its argument and returns a sequence or collection.

Return Value

The resulting flattened array.

Discussion

Use this method to receive a single-level collection when your transformation produces a sequence or collection for each element.

In this example, note the difference in the result of using `map` and `flatMap` with a transformation that returns an array.

In fact, `s.flatMap(transform)` is equivalent to `Array(s.map(transform).joined())`.

Complexity: O(m + n), where n is the length of this sequence and m is the length of the result.

Tranforming a Range's Elements

`func map<T>((Bound) -> T) -> [T]`

Returns an array containing the results of mapping the given closure over the sequence’s elements.

`func compactMap<ElementOfResult>((Bound) -> ElementOfResult?) -> [ElementOfResult]`

Returns an array containing the non-`nil` results of calling the given transformation with each element of this sequence.

`func flatMap<ElementOfResult>((Bound) -> ElementOfResult?) -> [ElementOfResult]`
Deprecated
`func reduce<Result>(Result, (Result, Bound) -> Result) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`func reduce<Result>(into: Result, (inout Result, Bound) -> ()) -> Result`

Returns the result of combining the elements of the sequence using the given closure.

`var lazy: LazySequence<ClosedRange<Bound>>`

A sequence containing the same elements as this sequence, but on which some operations, such as `map` and `filter`, are implemented lazily.