Perl 6 (146 | 150)
Bunu yapmanın en kolay yolu, operatörleri yenileri için uygulayan altyordamları değiştirmektir.
sub infix:«+» ($a,$b) { "(+ $a $b)" }
sub infix:«-» ($a,$b) { "(- $a $b)" }
sub infix:«*» ($a,$b) { "(* $a $b)" }
sub infix:['/'] ($a,$b) { "(/ $a $b)" } # stupid highlighter
sub infix:«**» ($a,$b) { "(^ $a $b)" }
# currently there seems to be a bug that
# prevents this from modifying the parser correctly
# probably because there is already a different operator with this name
# which has nothing to do with exponentiation
my &infix:«^» := &[**];
say 'a' ** (2 / 3) * 9 * 3 - 4 * 6;
# (- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6))
Bu şekilde yapmak için mutlak minimum bayt miktarı:
sub infix:<+>{"(+ $^a $^b)"} # 29
sub infix:<->{"(- $^a $^b)"} # + 29
sub infix:<*>{"(* $^a $^b)"} # + 29
sub infix:<**>{"(^ $^a $^b)"} # + 30
sub infix:</>{"(/ $^a $^b)"} # + 29
146 bayt, Perl 6'daki grafiklerin sayılması daha mantıklı olsa da.
Bu, " önek gösteriminde aynı ifadenin çıktısının ", yalnızca programın çıktısını değil, ifadenin sonucunu ifade edebileceğini varsayar .
say Programın STDOUT'a yazdırmasını sağlamak için ifadenin önüne eklemeniz gerekir. (150 bayt)
3+4-5+6 = (((3+4)-5)+6)ya da((3+4)-(5+6))?