BE AWARE THAT IT IS NOW DEFINATLY A FUNCTION
That's wrong. LEN is REALLY REALLY a unitary operator
And this of course is right.Here are three proofs:
1.: You can't find the source code or at least an extern declaration for this "function" (which you can do for all other functions)
2.: You can't find the memory address of the entry point of this "function":
Strict Framework brl.blitz Local LenPtr:Byte Ptr = Len Local LenInt = Int LenPtr WriteStdout "The Len-function is located at: " + LenInt + "~n"
3.: You don't need brackets at all:
Strict Framework brl.blitz WriteStdout Len "123" + 1 WriteStdout "~n"The only need for brackets is if you're using V1.22/1.24 and want to show the compiler that the expression which is Len's parameter should be compiled before the Len-operator itself. This is because the operator just changed precedence - in V1.20 and before the precedence was lower than the member access operator and higher than the negation operator; in V1.22/1.24 in contrast it has same precedence like the New-operator (which is higher than the member access operator).