Given these values
let lists: [[Double]] = [[1.1, 2.2, 3.3], [4.4, 5.5, 6.6]]
consider several possible approaches
Decision No. 1
let sum = lists.reduce(0) { $0 + $1.reduce(1, combine: *) }
Decision number 2
extension SequenceType where Generator.Element == Double {
var product : Double { return reduce(1.0, combine: *) }
}
let sum = lists.reduce(0) { $0 + $1.product }
№ 3
, ,
let sum = lists.map { $0.product }.reduce(0, combine:+)
№ 4
postfix operator +>{}
postfix func +>(values:[Double]) -> Double {
return values.reduce(0, combine: +)
}
postfix operator *>{}
postfix func *>(values:[Double]) -> Double {
return values.reduce(1, combine: *)
}
lists.map(*>)+>