[swift-evolution] [Review] SE-0090: Remove .self and freely allow type references in expressions

Joe Groff jgroff at apple.com
Wed May 18 14:51:18 CDT 2016


> On May 18, 2016, at 11:33 AM, Brent Royal-Gordon <brent at architechies.com> wrote:
> 
>> I thought about this, but { $0 } is already a fairly compact way to express the identity function.
> 
> It is, but I worry a bit about the core team's tendency to say "Oh, just use a closure" whenever something like this comes up. A function/method/property name can be merely *read*; a closure must be *interpreted*. And writing closures is error-proneā€”a slip of the keys and you've written `{ 0 }` or `{ 40 }` instead of `{ $0 }`, which look similar and (soon will) work in the same expressions but behave completely differently.

It seems to me that you could just as easily fat-finger `self` when you meant `.self`. The type system is likely to catch both `{ 0 }` and `self` mistakes.

-Joe

> Naming operations is powerful; it helps you understand them better and it helps you avoid fat-fingering them.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 



More information about the swift-evolution mailing list