Unicode operators and precedence?
Dominikus Dittes Scherkl
dominikus at scherkl.de
Sun Nov 1 20:52:10 UTC 2020
On Sunday, 1 November 2020 at 20:15:00 UTC, Ola Fosheim Grøstad
> On Sunday, 1 November 2020 at 19:47:33 UTC, Dominikus Dittes
> Scherkl wrote:
>> I would recommend to refrain from it as it is visual too
>> similar [to dot].
> It is center-dot, multiplication/inner product: vec1·vec2
> IDEs should colour it differently than the regular
> "vec1.length" operator
Ok, may work, but I still think it's no good idea.
>> same as *, / ("point" arithmetic)
> I wonder if they should be one step higher so that they can be
> used for linear algebra? But I am not sure.
Yeah, one step higher prio would be good.
>> same as &, |, ^ ("set" arithmetic - bitwise is only a special
>> kind of set)
> IIRC D uses the same as C where "&", "|" have higher precedence
> than "==" which is not good.
> I want to be able to say "A∩B == C" and have it parse as "(A∩B)
> == C".
I don't understand. if & | ^ had higher prio than == everything
would be good.
SO yes, you are right, the prio of set operation should be higher
> > ! --> ¬ (logic not)
> > && --> ∨ (logic and)
> > || --> ∧ (logic or)
> I was thinking to use those for bitwise operators in order to
> overcome the precedence mess that currently exists.
No, they are clearly logic operators and should NOT have set
Bitwise, as I mentioned, is only a special kind of set, so we
should use the set operators to overload bitwise arithmetic (I
always think of an unsigned value as a set of bits).
But I agree, logic should have higher prio than comparison, but
lower prio than set operators.
> > ^ --> ⊻ (xor - and add the missing ⊼ (nand) and ⊽ (nor))
> Also xor makes more sense bitwise.
Hmm. Maybe you are right - Xor, Nand and Nor are more useful as
additional set operators.
But And, Or and Not should be pure logic.
Ah, i missed one:
~ --> ∁ (complement)
And of course unary operators should have highest priority, no
matter if they are set, logic or whatever.
More information about the Digitalmars-d