+1

Not symmetrical by default, but able to add an attribute/keyword to 
auto-generate a default implementation which swaps the lhs & rhs.
> Hi, list!
> 
> I’m thinking about proposal that would add a possibility to save some time on 
> creating symmetrical binary operators.
> 
> The latest code example from my math lib:
> 
>     @inline(__always)
>     public static func *(lhs: Angle, rhs: Float) -> Angle {
>         return Angle(lhs.degrees * rhs)
>     }
>     
>     @inline(__always)
>     public static func *(lhs: Float, rhs: Angle) -> Angle {
>         return Angle(rhs.degrees * lhs)
>     }
> 
> The API of Angle doesn’t really matter here, what’s important is that I have 
> to write another operator to make it symmetrical. Not so hard: 3 lines of 
> code. It can even refer to original implementation, instead of duplicating 
> the logic. But I think it would be nice to have something like symmetrical 
> keyword, just like we have associativity and precedence. 
> 
> I also bet that all operators should be asymmetrical by default.
> 
> Any thoughts?

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to