Generic Instance Method

# compactMap(_:)

Returns an array containing the non-`nil` 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 an optional value.

## Return Value

An array of the non-`nil` results of calling `transform` with each element of the sequence.

## Discussion

Use this method to receive an array of non-optional values when your transformation produces an optional value.

In this example, note the difference in the result of using `map` and `compactMap` with a transformation that returns an optional `Int` value.

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

### Transforming a Digest

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

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

`func flatMap<SegmentOfResult>((UInt8) -> SegmentOfResult) -> [SegmentOfResult.Element]`

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

`func flatMap<ElementOfResult>((UInt8) -> ElementOfResult?) -> [ElementOfResult]`

Generates an array containing the non-`nil` results of calling the given transformation with each byte of the digest.

Deprecated
`func reduce<Result>(Result, (Result, UInt8) -> Result) -> Result`

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

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

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

`var lazy: LazySequence<Insecure.MD5Digest>`

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