> <> , 56 बाइट्स
^
.
+
8
f
0
o
a
o
~
:
?
~
:
?
:
-
*
4
8
:
^
^
}
*
3
d
'
इसे ऑनलाइन आज़माएं! या सभी उत्परिवर्तन सत्यापित करें ।
मूल कार्यक्रम कैसे काम करता है (पुराना)
इंटरप्रेटर सेल (0, 0) में शुरू होता है । ऊपर की ओर^
दिशा सेट करता है , इसलिए निर्देश सूचक (आईपी) सेल (0, 20) के चारों ओर घूमता है ।
'
स्ट्रिंग मोड को सक्रिय करता है: जब तक अगला '
सामने नहीं आता, तब तक आईपी के तहत सभी वर्ण स्टैक पर धकेल दिए जाते हैं। वही '
फिर से लपेटने के बाद पाया जाता है, इसलिए हम धक्का देते हैं
d3*}^^:84*=?~oao0f.^
IP भूमि (0, 19) , अभी भी ऊपर की ओर जा रही है। निष्पादन 13 = 0xd कोd3*}
धक्का देता है , फिर 3 , दोनों मूल्यों ( 39 / एकल उद्धरण ) को गुणा करता है , फिर स्टैक को दाईं ओर घुमाता है। यह स्टैक को निम्नानुसार छोड़ देता है।
'd3*}^^:84*=?~oao0f.^
अगले दो निर्देश ( ^
) इस बिंदु पर कुछ नहीं करते हैं।
:84*=
स्टैक के शीर्ष को डुप्लिकेट करता है, 8 और 4 को धक्का देता है , उन्हें ( 32 / स्थान ) गुणा करता है , फिर अंतरिक्ष के साथ समानता के लिए डुप्लिकेट किए गए चरित्र का परीक्षण करता है । अनछुए कार्यक्रम के लिए, यह हमेशा 0 को धक्का देगा ।
?
अगले अनुदेश को छोड़ देता है यदि स्टैक के ऊपर झूठा है। मूल कार्यक्रम के लिए, यह हमेशा होता है, इसलिए ~
हमेशा छोड़ दिया जाता है।
oao
पॉप और स्टैक के शीर्ष को प्रिंट करता है, 10 / लाइनफीड को धक्का देता है , फिर पॉप और प्रिंट को फीड करता है ।
अंत 0f.
में सेल (0, 15) (बॉटलमोस्ट ^
) पर कूदता है , स्टैक पर अगले चरित्र के साथ शुरू होता है।
स्टैक खाली होने के बाद, पूरे स्रोत कोड को प्रिंट किया गया है। :
विफल हो जाएगा और कार्यक्रम से बाहर निकलता है।
कैसे उत्परिवर्तित कार्यक्रम काम करते हैं (पुराना)
किसी भी गैर-लाइनफीड चरित्र को डुप्लिकेट करना केवल कार्यक्रम को क्षैतिज रूप से विस्तारित करेगा। चूंकि प्रोग्राम को लंबवत रूप से निष्पादित किया जाता है, इसलिए इन अतिरिक्त निर्देशों को कभी निष्पादित नहीं किया जाएगा।
सबसे पहले किसी भी लाइनफीड ^
को डुप्लिकेट करने से सेल (0, 14) और (0, 15) से (0, 15) और (0, 16) में बदलाव होगा । 0f.
अब बॉटलमोस्ट से पहले सेल में कूद जाएगा ^
, जो कि एक भी है ^
, इसलिए प्रोग्राम शिफ्ट से प्रभावित नहीं होता है।
अंत में, किसी भी डुप्लिकेट किए गए लाइनफीड चरित्र को भी स्ट्रिंग बदल देगा। छोटी लाइनें रिक्त स्थान के साथ गद्देदार होती हैं, इसलिए लाइनफ़ीड की स्थिति में एक 32 / स्थान डाला जाएगा। अंतरिक्ष के लिए 184*=
धक्का देगा , इसलिए अगले अनुदेश को छोड़ें नहीं। इस स्थिति में, चबूतरे और डिस्क स्थान को खाली करते हैं , इसलिए निम्नलिखित इसके बजाय चरित्र को अंतरिक्ष के ऊपर प्रिंट करेगा ।?
~
o
0
और00
CJam दोनों आउटपुट में0
।