April 2017
Intermediate to advanced
316 pages
9h 33m
English
To understand the power of reduce, we can implement the flatMap function in terms of reduce as well:
func flatMapIntermsOfReduce<Element>(elements: [Element], transform: (Element) -> Element?) -> [Element] { return reduce(elements: elements, initial: []) { guard let transformationResult = transform($1) else { return $0 } return $0 + [transformationResult] } } let anArrayOfNumbers = [1, 3, 5] let oneDimensionalArray = flatMapIntermsOfReduce(elements: anArrayOfNumbers) { $0 + 5 }
Also, we can flatten a two-dimensional array using the reduce method as follows:
func flatMapIntermsOfReduce<Element>(elements: [[Element]], transform: (Element) -> Element) -> [Element] { return elements.reduce([]) ...Read now
Unlock full access