পার্ল 6 (146 | 150)
এটি করার সহজতম উপায় হ'ল কেবলমাত্র এমন সাবরুটাইনগুলি সরিয়ে নেওয়া যা অপারেটরগুলি নতুনদের জন্য প্রয়োগ করে।
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))
এইভাবে এটি করার জন্য নিখুঁত সর্বনিম্ন পরিমাণ বাইটগুলি হ'ল:
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 বাইট, যদিও এটি পার্ল 6-তে গ্রাফিমগুলি গণনা করা আরও বোধগম্য।
এটি ধরে নিয়েছে যে " প্রিফিক্স নোটেশনে একই আউটপুট আউটপুট " কেবলমাত্র এক্সপ্রেশনটির ফলাফলকে উল্লেখ করতে পারে, প্রোগ্রামের আউটপুট অগত্যা নয়।
say
প্রোগ্রামটি এটি STDOUT এ মুদ্রণের জন্য আপনাকে এক্সপ্রেশনটির সামনে যোগ করতে হবে। (150 বাইট)
3+4-5+6 = (((3+4)-5)+6)
নাকি((3+4)-(5+6))
?