|>I|
इसे ऑनलाइन आज़माएं!
इसे उलटा करके देखें!
यह किसी भी इनपुट के लिए काम करता है जिसमें शून्य बाइट्स नहीं होते हैं।
व्याख्या
वाह, मैं उस बिंदु पर पहुंच गया हूं जहां मैं हाथ से लिख रहा हूं ...
पूरा कार्यक्रम है |>I|I<|
।
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
> Move one stack over to the right (which only contains zeros).
I Does nothing on zero.
| Does nothing on zero.
I Does nothing on zero.
< Move back to the initial stack.
| Reverse the input once more.
केंद्र कमांड के बाद से पिछली चुनौती के समाधान के रूप में |
कुछ भी नहीं करता है, इसलिए संपूर्ण कार्यक्रम करता है।
उलटा कार्यक्रम तो है |I>|<I|
।
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
> Move back to the initial stack.
| Reverse it again, but this time without the EOF marker.
< Move back to the left.
I Move the +1 back onto the initial stack and turn it into a -1 again.
| Reverse the entire stack. We now have the -1 as an EOF marker again at the bottom
and the rest of the stack has been reversed three times, i.e. one net reversal.
दिलचस्प बात यह है कि यदि हम इस उलटफेर कार्यक्रम का उपयोग करते हैं, तो हमें -m
इस बार भी काम करने का कोई समाधान नहीं मिलता है, इसलिए केवल अतिरिक्त बाइट्स को छोड़ दिया -m
जाता है, जिन्हें हम कोड मिररिंग से प्राप्त करते हैं।
|I<|>I|
इसे ऑनलाइन आज़माएं!
इसे उलटा करके देखें!
व्याख्या
इस कार्यक्रम का उलटा संस्करण है |I>|<I|
, ऊपर जैसा कि हम इसे अनदेखा कर सकते हैं। लेकिन गैर-उलटा संस्करण अलग है। चूंकि <>
अब दूसरे तरीके से इंगित करते हैं, केंद्र कमांड कुछ भी नहीं करने के लिए समाप्त होता है, इसलिए कार्यक्रम एक बिल्ली बन जाता है:
| Reverse the entire stack down to the EOF marker -1 (since there are no zeros in the input).
I Move the -1 one stack to the left and turn it into a +1.
< Move another stack to the left, which contains only zeros.
| Does nothing on zero.
और इस प्रकार, >I|
कार्यक्रम के पहले आधे हिस्से को पूर्ववत करें।