[swift-evolution] [Review] SE-0084: Allow trailing commas in parameter lists and tuples

Joshua Kopin jkopin at apple.com
Wed May 11 11:56:22 CDT 2016


+1

On 11 May 2016, at 9:11, Erica Sadun via swift-evolution wrote:

>> On May 11, 2016, at 9:42 AM, Evan Maloney <emaloney at gilt.com> wrote:
>>
>>> I’m going to propose the keyword #litter as an alias for , so I 
>>> can throw garbage syntax into my code more effectively seven letters 
>>> at time :P
>>
>> ;-)
>>
>>
>
> :P
>
> One of the most interesting things about this whole comma proposal is 
> how Swifty ("keeping in the feel and direction of Swift") it is to use 
> multiple lines for functions and methods both in definition and at 
> call sites. Swift may be "succinct" but in terms of generics, 
> defaults, and external labels, it's absolutely ridiculous to try to 
> limit signatures to single lines. The only way to deal with common 
> Swift complexity is to structure what in any other language would be a 
> single line into multiple lines. Here are a couple of examples pulled 
> from stdlib:
>
>   public func split(
>     separator: Iterator.Element,
>     maxSplits: Int = Int.max,
>     omittingEmptySubsequences: Bool = true
>   ) -> [SubSequence] { ... }
>
> and
>
> public func transcode<
>   Input : IteratorProtocol,
>   InputEncoding : UnicodeCodec,
>   OutputEncoding : UnicodeCodec
>   where InputEncoding.CodeUnit == Input.Element
>> (
>   _ input: Input,
>   from inputEncoding: InputEncoding.Type,
>   to outputEncoding: OutputEncoding.Type,
>   stoppingOnError stopOnError: Bool,
>   sendingOutputTo processCodeUnit: @noescape (OutputEncoding.CodeUnit) 
> -> Void
> ) -> Bool { ... }
>
> My call for commas crosses into two other discussions that are 
> happening right now on Swift Evolution: moving where clauses to the 
> end of declarations (yes please) and whether to force defaulted 
> parameters to appear in order at call sites (no thank you). Thinking 
> about commas from this point of view can be  disconcerting because 
> when you think "What is Swift", the phrase that pops to mind is always 
> "clarity and concision" but real world Swift declarations are anything 
> but.  Clear? They can be with carefully considered folding. Concise? 
> Not especially.
>
> I hope that anyone considering this proposal will think carefully 
> about real world Swift like the examples I've pasted above and the 
> others I've used in previous replies rather than some theoretical 
> ideal where excess punctuation at the end of a declaration or call 
> site is an actual silly eyesore:
>
> func foo(a: T, b: U,) // not especially reflective of real world use
>
> Because in the end this proposal should succeed or fail based on 
> actual code enhancement and the gains that are to be accrued in real 
> world use and not due to a simple taste factor.
>
> -- E
>
>
>
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list