[swift-evolution] [Proposal] Automating Partial Application via Wildcards

Greg Titus greg at omnigroup.com
Tue Feb 2 12:41:24 CST 2016


What about $N?  :-)  

And then you could also put {} around it so that it is more obvious that partial1 is being assigned something that acts like a closure, and then you end up with:

let partial1 = { projectFunctionToCoordinateSystem(function: mySinFunction, p0: p0, p1: p1, x: $0) }
let partial2 = { projectFunctionToCoordinateSystem(function: mySinFunction, p0: .zero, p1: $0, x: $1) }

instead of:
> let partial1 = projectFunctionToCoordinateSystem(function: mySinFunction, p0: p0, p1: p1, x: _) 
> let partial2 = projectFunctionToCoordinateSystem(function: mySinFunction, p0: .zero, p1: _, x: _) 

I’m -1.

With the way that single expression closures work, and the fact that they are so syntactically light, I don’t think that this proposal would add utility, it would just be one more construct to learn.

	- Greg

> On Feb 2, 2016, at 10:28 AM, Gwendal Roué via swift-evolution <swift-evolution at swift.org> wrote:
> 
> What about nothing?
> 
> let partial1 = f(arg1: 1, arg2:)
> Gwendal
> 
>> Le 2 févr. 2016 à 19:26, Gwendal Roué <gwendal.roue at gmail.com <mailto:gwendal.roue at gmail.com>> a écrit :
>> 
>> Any operator character would be bad, since the function may accept it, as in `[1,2,3].reduce(1, combine: *)`
>> 
>> Gwendal
>> 
>>> Le 2 févr. 2016 à 19:24, Erica Sadun via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> a écrit :
>>> 
>>> 
>>>> On Feb 2, 2016, at 11:20 AM, Chris Lattner <clattner at apple.com <mailto:clattner at apple.com>> wrote:
>>>> 
>>>> On Feb 2, 2016, at 10:16 AM, Erica Sadun <erica at ericasadun.com <mailto:erica at ericasadun.com>> wrote:
>>>>>> 
>>>>>> One superficial comment on this: the use of _ here is a bad idea.  _ already means something in expressions - “discard”, and a closely related thing in declarations - “ignore”.  
>>>>>> 
>>>>>> Adding a third very different thing (placeholder to be filled in later) seems like a really confusing thing to do.
>>>>>> 
>>>>>> -Chris
>>>>>> 
>>>>> 
>>>>> 
>>>>> #?
>>>> 
>>>> # means “macro like” or “compiler synthesized”.
>>>> 
>>>> -Chris
>>>> 
>>> 
>>> * would be bad, right? And naked ?-marks?
>>> 
>>> -- E
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160202/a7a59aec/attachment.html>


More information about the swift-evolution mailing list