[swift-evolution] Should we incorporate bunches of new operators / micro-syntactic sugar?

Stephen Celis stephen.celis at gmail.com
Thu Dec 21 13:00:30 CST 2017


Ah, sorry, I misread! For readability I think I'd still favor something like:

    if let b = b {
      dict[a] = b
    }

And I think some the arguments made in #0024 may still apply here, though feel free to discuss!

Stephen

> On Dec 21, 2017, at 1:37 PM, Benoit Pereira da silva <bpds at me.com> wrote:
> 
> Stephen,
> 
> You are right the proposal #0024 is very close.
> But in fact the logic is inverted.  
> 
> When using «=? » the right item is optional.
> a =? b assigns « b »  to « a »  only if « b »  is defined.
> So if an optional is defined =? will not erase its value.
> 
> But my real questions was…
> Do you have such operators that you really use very often?
> Should we incorporate bunches of new operators / micro-syntactic sugar?
> Is swift evolution the good place to discuss such question?
> 
> I don’t want to pollute your mail boxes.
> 
> Best regards,
> 
> B
> 
>> Le 21 déc. 2017 à 19:12, Stephen Celis <stephen.celis at gmail.com <mailto:stephen.celis at gmail.com>> a écrit :
>> 
>> Such an operator was proposed here: https://github.com/apple/swift-evolution/blob/60a8980a66a0a1341871ec323797c5547d0e0925/proposals/0024-optional-value-setter.md <https://github.com/apple/swift-evolution/blob/60a8980a66a0a1341871ec323797c5547d0e0925/proposals/0024-optional-value-setter.md>
>> 
>> It was ultimately rejected: https://lists.swift.org/pipermail/swift-evolution-announce/2016-February/000043.html <https://lists.swift.org/pipermail/swift-evolution-announce/2016-February/000043.html>
>> 
>> Stephen
>> 
>>> On Dec 21, 2017, at 11:44 AM, Benoit Pereira da silva via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>> 
>>> Dear all,
>>> 
>>> That’s not ambitious but i think worth be explored.
>>> 
>>> What do you think for example of this Infix operator?
>>> « =? »  allows to express optional assignments  in a very concise way.
>>> 
>>> 
>>> // The `=? operator allows simplify optional assignements :
>>> //  `a = b ?? a` can be written : `a =? b`
>>> infix operator =?: AssignmentPrecedence
>>> 
>>> public func =?<T> ( left:inout T?, right: T? ){
>>>     left = right ?? left
>>> }
>>> 
>>> public func =?<T> ( left:inout T, right: T? ){
>>>     left = right ?? left
>>> }
>>> 
>>> 
>>> Do you have such operators that you really use very often?
>>> 
> 
> Benoit Pereira da Silva
> Ultra Mobile Developer & Movement Activist
> Développeur Ultra Mobile & Militant du mouvement
> https://pereira-da-silva.com <https://pereira-da-silva.com/>
> 
> <bannerp.jpg>
> 
> 
> 
> ✄ --------------------------------
> This e-mail is confidential. Distribution, copy, publication or use of this information for any purpose is prohibited without agreement of the sender.
> Ce message est confidentiel. Toute distribution, copie, publication ou usage des informations contenues dans ce message sont interdits sans agrément préalable de l'expéditeur.

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


More information about the swift-evolution mailing list