[swift-evolution] [Pitch] Support for pure functions. Part n + 1.

Matthew Johnson matthew at anandabits.com
Fri Feb 17 11:18:17 CST 2017


If we do go with the => means pure one option for closures without a signature would be something like this: {= $0.pureMethod() }

This keeps the closure concise and uses = to indicate purity.  The fact that it looks a little bit like assignment is interesting since a pure function always has to have a return value. 

Sent from my iPad

> On Feb 17, 2017, at 10:59 AM, Matthew Johnson via swift-evolution <swift-evolution at swift.org> wrote:
> 
> How do you suggest a closure indicate its purity? Something like this?  
> 
> { pure in $0.property } 
> 
>> On Feb 17, 2017, at 10:57 AM, Florent Vilmart <florent at flovilmart.com> wrote:
>> 
>> We were discussing the topic yesterday with others and some suggested adding a pure keyword, for improved readability, just before the function declaration:
>> 
>> Ex:
>> 
>> pure func(a:Some) -> Else {}
>> 
>> 
>> 
>>> On Feb 17, 2017, 11:51 AM -0500, Matthew Johnson via swift-evolution <swift-evolution at swift.org>, wrote:
>>> 
>>>> On Feb 17, 2017, at 10:46 AM, David Sweeris via swift-evolution <swift-evolution at swift.org> wrote:
>>>> 
>>>> 
>>>> On Feb 17, 2017, at 08:21, Adrian Zubarev via swift-evolution <swift-evolution at swift.org> wrote:
>>>> 
>>>>> I haven’t yet read all the feedback in this topic but I’d like to throw some bikeshedding of mine into the room. :)
>>>>> 
>>>>> How about this?
>>>>> 
>>>>> Version 1: func(pure) …
>>>>> Version 2: func label(…) ~> ReturnType
>>>> Version 2 is going to upset those who use "~>" as an operator.
>>>> 
>>>> As the # of possible attributes grows, having an obvious grouping mechanism for them, like version 1, might be worthwhile simply to help make the list clearer. What about allowing "@(list, of, attributes)" instead of "@list, @of, @attributes”?
>>> 
>>> That would be a little bit awkward for attributes that are parameterized.  And if we did do this we should allow the parens to be omitted when there is only one attribute.
>>> 
>>>> 
>>>> - Dave Sweeris
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> 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
> 
> _______________________________________________
> 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/20170217/ba3b1a1a/attachment.html>


More information about the swift-evolution mailing list