julia> 4 ^2
16
But
julia> ^2(4)
ERROR:** syntax: “^” is not a unary operator
What is the rational for this behavior?
julia> 4 ^2
16
But
julia> ^2(4)
ERROR:** syntax: “^” is not a unary operator
What is the rational for this behavior?
The problem is that it gets parsed as ^(2*4).
julia> ^(2,3)
8
I know that. My question was about ^2(n).
OK, thanks.
Yes, the key is that the function is not ^2, it’s simply ^. So it’s not that ^2 is a postfix operator applied to 4, but rather that ^ is an infix operator between 2 and 4. It’s an infix operator with very high precedence.
Hopefully that gets at the rationale that you’re after here. You could manually create a square operator, but it’s not done automatically:
julia> square(x) = x^2
square (generic function with 1 method)
julia> square(4)
16
Thanks for the explanation, it’s very helpful!
would you please mark the correct reply as “solution”?