This code was legal in Swift 1.1:
let arr = Array(1...100)
let sum = arr.reduce(0,+)
But in Swift 1.2 it is no longer legal. Instead, I am compelled to use the combine:
parameter name explicitly:
let arr = Array(1...100)
let sum = arr.reduce(0,combine:+)
Why? I see no difference in their declarations — except for the new @noescape
attribute (well explained here). But why should that change anything about the use of external parameter names?