यह चुनौती मेरी पहली गूढ़ भाषा, बैकहैंड के उत्सव में बनाई गई है !
बैकहैंड एक गैर-रेखीय सूचक प्रवाह के साथ एक आयामी भाषा है। सूचक एक समय में तीन कदम चलता है, केवल हर तीसरे निर्देश को निष्पादित करता है।
कार्यक्रम 1..1..+..O..@समाप्त होने से पहले 1 + 1 और आउटपुट 2 जोड़ देगा। मध्यवर्ती निर्देश छोड़ दिया जाता है, तो 1<>1()+{}O[]@ठीक यही कार्यक्रम है।
जब पॉइंटर टेप के अंत से हटने वाला होता है, तो यह दिशा को उलट देता है और दूसरे तरीके को आगे बढ़ाता है, तो 1.@1.O+.यही प्रोग्राम है। ध्यान दें कि यह केवल एक बार अंतिम निर्देश को गिनता है। यह हमें नीचे दिए गए अधिकांश रैखिक कार्यक्रमों को संपीड़ित करने की अनुमति देता है, जैसे कि1O+1@
यहां आपकी चुनौती एक प्रोग्राम या फ़ंक्शन लिखना है जो एक स्ट्रिंग लेता है, और निर्देशों का उत्पादन करता है जिसे निष्पादित किया जाएगा यदि प्रोग्राम बैकहैंड की तरह व्याख्या किया गया था (आपको किसी भी वास्तविक बैकहैंड निर्देश को संभालने की आवश्यकता नहीं है)। आप केवल तब तक आउटपुट करते हैं जब तक कि स्ट्रिंग के अंतिम वर्ण पर सूचक भूमि (जिस बिंदु पर निष्पादन सामान्य रूप से पीछे की ओर जाएगा)।
लेकिन रुको , यह सब नहीं है! जब आपके कार्यक्रम की व्याख्या इस तरह से की जाती है, तो परिणामी कोड को नीचे दिए गए में से एक का उत्पादन करना चाहिए:
(Mostly) worksTuring complete'Recreational'(उद्धरण'या तो हो सकते हैं", लेकिन दोनों नहीं)Perfectly okayOnly a few bugs
उदाहरण के लिए, यदि आपका स्रोत कोड है code 2 backhand, तो प्रोग्राम ce cankb od2ahdको इन वाक्यांशों में से एक का उत्पादन करना चाहिए।
परीक्षण के मामलों:
"1 1 + O @" -> "11+O@"
"1O+1@" -> "11+O@"
"HoreWll dlo!" -> "Hello World!"
"abcdefghijklmnopqrstuvwxyz" -> "adgjmpsvyxurolifcbehknqtwz"
"0123456789" -> "0369" (not "0369630369")
"@" -> "@"
"io" -> "io" (Cat program in Backhand)
"!?O" -> "!?O" (Outputs random bits forever in Backhand)
"---!---!" -> "-!-----!"
और , बेशक, बैकहैंड में लिखा गया एक संदर्भ कार्यक्रम ( यह थोड़ा छोटा लग सकता है ठीक है, मुझे लगता है कि मैंने इसे ठीक कर लिया है)।
नियम।
- मानक ढीले निषिद्ध हैं
- पहले कार्यक्रम के इनपुट में केवल मुद्रण योग्य ASCII और newlines (यानी बाइट्स
0x20-0x7Eसाथ ही 0x0A) शामिल होंगे - आप यह चुन सकते हैं कि आपका दूसरा प्रोग्राम आपके पहले बाइट्स से या UTF-8 वर्णों द्वारा परिवर्तित किया गया है या नहीं।
- दूसरा कार्यक्रम:
- मामला मायने नहीं रखता है, इसलिए
pErFectLy OKayयदि आप चाहें तो आपका आउटपुट हो सकता है । - व्हाट्सएप / लीडिंग व्हाट्सएप की कोई भी राशि (न्यूलाइन, टैब, स्पेस) भी ठीक है।
- दूसरा कार्यक्रम पहले की तरह ही भाषा होना चाहिए, हालांकि जरूरी नहीं कि एक ही प्रारूप (कार्यक्रम / कार्य) हो
- मुझे अतिरिक्त वाक्यांशों पर टिप्पणियों से सुझाव शामिल करने की खुशी है (जब तक कि वे बहुत कम न हों)
- मामला मायने नहीं रखता है, इसलिए
- जैसा कि यह कोड-गोल्फ है , आपका उद्देश्य आपकी भाषा के लिए सबसे कम उत्तर प्राप्त करना है!
- दो हफ्तों में, मैं सबसे कम बैकहैंड उत्तर के लिए 200 इनाम दूंगा।
"---!---!"(या कोई भी स्ट्रिंग जहां अंतिम वर्ण एक से अधिक बार दिखाई देता है)