Interesting proposal, but how would it work with closures that take two
or more params? What would the following expression become:

[1,2,3,4].reduce("", { $0.description + $1.description })

Is this special syntax that would only apply to closures with one
parameter? If so I'm not sure that I would consider it worth the added
complexity (though I agree that the $0 doesn't look that nice normally).

- Kevin

On 12/17/2015 10:27 PM, Matthew Johnson via swift-evolution wrote:
> Swift currently offers dot shorthand for static members of type Self in type 
> contexts expecting a value of the type in question.  This is most commonly 
> used with enum cases.
>
> Swift does not currently offer shorthand for instance members.  Introducing a 
> shorthand for instance members would improve clarity and readability of code 
> in common cases:
>
> anArray.map{$0.anInstanceMethod()}
>
> becomes:
>
> anArray.map(.anInstanceMethod())
>
> This shorthand would work in typing contexts expecting a single argument 
> function.  It would allow abbreviated access to any visible instance property 
> getter or instance method on the type of the argument.  Of course the return 
> type would need to match the return type expected by the context or a type 
> mismatch compiler error would occur.
>
> The readability advantage is arguably small but it does exist.  The feature 
> also aligns very well with an existing language feature.
>
> I think it’s an interesting idea and am wondering whether others feel like it 
> is something worth pursuing or not.
>
> Matthew
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to