Assignment
The real power of symbols comes from being able to assign them new values after initialization.
fnc main () () {
sym (x 1) (y 2);
= x y; # x is now 2
sym (z 3);
= x y z; # x and y are now 3
};
There are some additional operators (macros defined in base.orb) you may use to modify symbols.
import "base.orb";
fnc main () () {
sym (x 1);
+= x 2; # x is now 3
-= x 1; # x is now 2
*= x 6; # x is now 12
/= x 2; # x is now 6
%= x 4; # x is now 2
<<= x 1; # x is now 4
>>= x 1; # x is now 2
&= x 0b0011; # x is now 2
|= x 0b0011; # x is now 3
^= x 0b1010; # x is now 9
++ x; # x is now 10
-- x; # x is now 9
};