In Raku, all operators are just functions with a funny syntax, but if you want to use it as a function, you need the full name.
infix:<+^>($x, $y) would probably work just as well. And where is the '$' before the z? On Sat, 18 Jan 2020 at 15:45, ToddAndMargo via perl6-users < perl6-us...@perl.org> wrote: > >> On Fri, Jan 17, 2020 at 11:03 PM ToddAndMargo via perl6-users > >> <perl6-us...@perl.org <mailto:perl6-us...@perl.org>> wrote: > >> > >> Hi All, > >> > >> https://docs.raku.org/routine/+$CIRCUMFLEX_ACCENT > >> > >> (Operators) infix +^ยง > >> > >> multi sub infix:<+^>($a, $b --> Int:D) > >> > >> Integer bitwise XOR operator: Coerces both arguments to Int and > does a > >> bitwise XOR (exclusive OR) operation. > >> > >> > >> $ p6 'my uint8 $x=0b0101_0111; my uint8 $y = 0b0000_1111; my uint8 > $z = > >> +^($x, $y ); say "0", $x.base(2); say "0000", $y.base(2); say > >> $z.base(2);' > >> > >> 01010111 > >> 00001111 > >> 11111101 > >> > >> > >> XOR > >> A B A xor B > >> 0 0 0 > >> 1 0 1 > >> 0 1 1 > >> 1 1 0 > >> > >> That s not what I am seeing above. > >> > >> What am I doing wrong this time? > >> > >> And who set the high bit making $z negative? > >> > >> Many thanks, > >> -T > > > On 2020-01-17 20:24, Paul Procacci wrote: > > multi sub infix:<+^>($a, $b-->Int:D) > > > > > > _infix_ here is the keyword for you. > > > > my uint8 $z = $x +^ $y; > > $ p6 'my uint8 $x=0b0101_0111; my uint8 $y = 0b0000_1111; my uint8 $z = > $x +^ $y; say "0", $x.base(2); say "0000", $y.base(2); say z.base(2);' > ===SORRY!=== Error while compiling -e > Undeclared routine: > z used at line 1 > > What does "sub" stand for? >