[swift-evolution] Brainstorming: Optional sugar inferred map

Brent Royal-Gordon brent at architechies.com
Tue Feb 16 01:13:34 CST 2016

> To address this, the nil-coalescing operator would allow $$, where $$ is the unwrapped unnamed result of the expression when non nil: 
> func doSomething(value: Int) -> Int {
>     return value
> }
> let ra = a ?? doSomething($$) 
> let rc = c ?? doSomething($$)
> ra -> 5
> rc -> nil

I think this is completely the wrong way to approach this.

*If* you want to implement this feature, I think the way to do it is to say that you can put ? after any optional parameter to a normal function call, and Swift will unwrap all the parameters so marked and make the call return `nil` if any of them are nil.

	let ra = doSomething(a?)
	let rc = doSomething(c?)

Naturally, since operators are just function calls with a funny syntax, this would also extend to operators.

	a? + b	// a.k.a. +(a?, b)

Even in this form, however, I don't think this is a feature worth having. Too indirect and specialized.

Brent Royal-Gordon

More information about the swift-evolution mailing list