func reduce<S : SequenceType, U>(_: S, initial: U, combine: @noescape (U, S.Generator.Element) -> U) Return the result of repeatedly calling combine with an accumulated value initialized to initial and each element of sequence, in turn. Declaration func reduce<S : SequenceType, U>(sequence: S, initial: U, combine: @noescape (U, S.Generator.Element) -> U) -> U