> On Feb 22, 2017, at 11:05 AM, Matthew Johnson <[email protected]> wrote: > > >> On Feb 22, 2017, at 12:30 PM, David Sweeris <[email protected]> wrote: >> >> >>> On Feb 22, 2017, at 7:48 AM, Matthew Johnson via swift-evolution >>> <[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] https://lists.swift.org/mailman/listinfo/swift-evolution
