Right-handed unary operator?


#1

Is it possible to define unary operators that act from the right?
For example, typically ! is placed on the right for factorial like 5!.

Specifically, I’d like to define some operation like and or alternatively x^l and x^r.

If that’s not possible, how can I define it in the same way as + and - are defined so that +1 yields 1 and -1 yields -1 value without using parenthesis like +(1) or -(1). How can I define the function ʳ(x) = foo(x) so that I can use it without parenthesis like ʳx, preferably with a right-handedness so that I can write .


#2

The only unary operators in Julia are <: >: + - ! ~ ¬ √ ∛ ∜, all of which are parsed as acting from the left. Edit: plus ' and .', of course, which are postfix operators.

You can’t define arbitrary new symbols as unary operators, only use/extend/redefine those that are already parsed that way. (Nor can you define arbitrary symbols to be binary operators, but this is less of a limitation since there are many more Unicode binary operators to choose from, particularly in 0.7 now that you can add operator suffixes/decorators via #22089.)


#3

And superscripts, in particular, are too useful as part of identifiers to give them up for operators. But note that in 0.7 you can add superscripts to operators, e.g. you can define an operator .


#4

I too would love to have more unary operators.