[swift-evolution] Pitch: Compound name `foo(:)` for nullary functions

Matthew Johnson matthew at anandabits.com
Wed Feb 22 13:05:40 CST 2017


> On Feb 22, 2017, at 12:30 PM, David Sweeris <davesweeris at mac.com> wrote:
> 
> 
>> On Feb 22, 2017, at 7:48 AM, Matthew Johnson via swift-evolution <swift-evolution at swift.org> 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.

> 
> - Dave Sweeris



More information about the swift-evolution mailing list