দৈর্ঘ্য এনকোডেড ব্রেনফাক, 49 বাইট চালান
যেহেতু ব্রেইনফাকের কোনও ভেরিয়েবল নেই, আমি কেবল পরিবর্তে স্ট্যান্ডার্ড ইনপুট এবং আউটপুট ব্যবহার করেছি।
32+
দোভাষী দ্বারা কোডটি 32 +
টি হিসাবে ব্যাখ্যা করা উচিত । আপনার দোভাষী যদি আরএলইকে সমর্থন না করেন তবে কেবল সেগুলি ম্যানুয়ালি প্রতিস্থাপন করুন।
>,[32->+<[16-<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
প্রসারিত (নন-আরএলই) সংস্করণ: (91 বাইট)
>,[-------------------------------->+<[----------------<[>++<-]>[<+>-]>-<]>[<<.[-]>>-]<,]<.
কোডটি ধরে নিয়েছে যে ইওএফটি 0 হিসাবে এনকোড হয়েছে।
ব্যাখ্যা
নিম্নলিখিত বিন্যাস ব্যবহৃত হয়:
+---+---+------+
| x | a | flag |
+---+---+------+
x
ASCII বাইটটি কোথায় মুদ্রিত হতে হবে, a
এটি স্ট্যান্ডার্ড ইনপুট থেকে একটি চরিত্র এবং একটি স্থান flag
হলে 1 হয় a
।
>, Read a character a into the second cell
[ While not EOF:
32- Decrease a by 32 (a -= ' ')
>+< Set the flag to 1
[ If a was not a space:
16- Decrease by 16 more ('0' == 32+16)
<[>++<-] a += 2*x
>[<+>-] Move it back (x = a)
>-< Reset the flag, it was not a space.
]>
[ If a was a space (flag == 1):
<<.[-] Print and reset x
>>- Reset the flag
]
<, Read the next caracter a
]
<. Print the last character x