Generic Instance Method

# flatMap(_:)

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

## 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.

### Transforming a Set

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

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

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

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

`func reduce<Result>(Result, (Result, Element) -> Result) -> Result`

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

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

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

`func sorted() -> [Element]`

Returns the elements of the sequence, sorted.

`func sorted(by: (Element, Element) -> Bool) -> [Element]`

Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.

`func shuffled() -> [Element]`

Returns the elements of the sequence, shuffled.

`func shuffled<T>(using: inout T) -> [Element]`

Returns the elements of the sequence, shuffled using the given generator as a source for randomness.

`var lazy: LazySequence<Set<Element>>`

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