[swift-evolution] [Proposal] Custom operators
Rainer Brockerhoff
rainer at brockerhoff.net
Sat Apr 9 09:11:37 CDT 2016
Chris, thanks for commenting, but see below:
On 4/9/16 10:33, Chris Lattner via swift-evolution wrote:
>> On Apr 8, 2016, at 5:16 AM, Rainer Brockerhoff via swift-evolution <swift-evolution at swift.org> wrote:
>>> - I definitely agree that a partial ordering between precedences is all that we need/want, and that unspecified relations should be an error.
>>> ...
>>> Question for you: have you considered introducing named precedence groups, and having the relationships be between those groups? For example, I could see something like:
>>>
>>> operator group additive {}
>>> operator group multiplicative { greaterThan: additive }
>>> operator group exponential { greaterThan: additive }
>>
>> Also +10, would be interested in your opinion about:
>>
>> 1) disallowing adding new operator groups outside the stdlib;
>
> I don’t see why we would do that. This would lead us directly into
> the world of C++ operator overloading, where everyone reuses existing
> operators instead of defining their new and unique operators. IMO it
> is much better to "know that you don’t know” what a symbol is, rather
> than assuming it has the obvious semantics and being surprised
> because it was overloaded.
I agree with you a 100% regarding new operators, but notice I said
"adding new operator GROUPS". I don't see much sense in adding a new
precedence group beyond the ones already defined.
This goes along with your comment later in this thread:
> ...This would require using parentheses to disambiguate...
which I always do — I never remember most of the precedences.
>> 2) disallowing adding operators to uncommon groups like subscripting,
>> function calls, etc.
> Subscripting and function calls are not operators.
Oops, right. I meant in the context of "expressions", as used in the
Swift book.
--
Rainer Brockerhoff <rainer at brockerhoff.net>
Belo Horizonte, Brazil
"In the affairs of others even fools are wise
In their own business even sages err."
http://brockerhoff.net/blog/
More information about the swift-evolution
mailing list