Here is the definition flatMap()
public func flatMap<ElementOfResult>(_ transform: (Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]
resultTypeSpecified [String?], , ElementOfResult - Optional<String>.
(String?) -> Optional<Optional<String>>.
flatMap 1 "" , 2 .
, :
let input: [String??] = [
Optional.some(Optional.some("1989")),
Optional.some(Optional.none),
Optional.some(Optional.some("Fearless")),
Optional.some(Optional.none),
Optional.some(Optional.some("Red"))
]
let output = input.flatMap({ $0 })