In addition, I think # and @ are very confusing since they are not one of the existing symbols in function name syntax.
-Richard > On Feb 22, 2017, at 15:25, Richard Wei <[email protected]> wrote: > > I prefer the `foo(_)` option and keeping the one-colon-per-arg rule. > > Intuition: > Underscore means no label. Colon means one argument. > foo(_:) – one arg with no label > foo(_) – no arg with no label > > -Richard > >> On Feb 22, 2017, at 14:27, Jacob Bandes-Storch via swift-evolution >> <[email protected] <mailto:[email protected]>> wrote: >> >> Just to throw out some other options: foo(#) and foo(@). >> >> (And you thought we'd gotten rid of # argument labels! 😉) >> >> On Wed, Feb 22, 2017 at 11:48 AM David Sweeris <[email protected] >> <mailto:[email protected]>> wrote: >> >> > On Feb 22, 2017, at 11:05 AM, Matthew Johnson <[email protected] >> > <mailto:[email protected]>> wrote: >> > >> > >> >> On Feb 22, 2017, at 12:30 PM, David Sweeris <[email protected] >> >> <mailto:[email protected]>> wrote: >> >> >> >> >> >>> On Feb 22, 2017, at 7:48 AM, Matthew Johnson via swift-evolution >> >>> <[email protected] <mailto:[email protected]>> wrote: >> >>> >> >>> I like this idea. I think you made the right choice of syntax given the >> >>> alternatives considered. To me `foo(_)` and `foo(:)` equally imply >> >>> presence of an argument. The former looks like an anonymous (unnamed) >> >>> argument and the latter includes the colon which only follows an >> >>> argument. Between the two `foo(:)` is the better choice because it >> >>> doesn’t look like a pattern as has been pointed out. >> >>> >> >>> I’m going to do a little brainstorming to try and come up with something >> >>> that works and doesn’t imply an argument at all but suspect I’ll come up >> >>> empty handed. >> >> >> >> What about “foo(Void)”? It might be fairly easily confused with >> >> “foo(:Void)”, but in practice, how likely is it for someone to declare >> >> both `foo()` and `foo(_: Void)`? >> > >> > I almost threw out `foo(Void)` and `foo(Never)` as ideas. There is at >> > least one problem with these. We will hopefully eventually get rid of the >> > need to say `.self` in expressions like `Int.self`. If we are able to do >> > that then `foo(Void)` and `foo(Never)` are syntactically valid function >> > calls. >> >> Oh, good point! Hrmm… “foo(#null)”/“foo(#nullary)"? I can’t imagine either >> of those would ever be valid function calls, and they get the point across >> (the later more than the former, but it’s more to type). I don’t like that >> syntax for the name of “shortest” version of the function isn’t shorter than >> the syntax of the name for other versions of the function, though. >> >> - Dave Sweeris >> _______________________________________________ >> swift-evolution mailing list >> [email protected] <mailto:[email protected]> >> https://lists.swift.org/mailman/listinfo/swift-evolution >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
