सारांश
केवल पात्रों का उपयोग करके एक नई स्ट्रिंग हेरफेर भाषा बनाई गई है $+#-!*|@>
! आपका कार्य संभव है कि इसके लिए कुछ बाइट्स में एक दुभाषिया लागू किया जाए।
इनपुट
एक स्ट्रिंग, जो इस भाषा की एकल पंक्ति है। इसे किसी भी उचित तरीके से (स्टडिन, फ़ंक्शन पैरामीटर, कमांड लाइन तर्क आदि), या पूर्वनिर्धारित चर के रूप में लिया जा सकता है। यदि प्रोग्राम उपयोगकर्ता इनपुट के लिए पूछता है, तो सभी उपयोगकर्ता इनपुट को स्वीकार करें, जो स्टड से मांगता है और अधिक कुछ नहीं, नीचे देखें। आप मान सकते हैं कि यह एक वैध कार्यक्रम है।
उत्पादन
जो भी भाषा का उत्पादन होगा, नीचे विनिर्देशन। आपको एक स्ट्रिंग को किसी भी उचित तरीके से (स्टडआउट, फंक्शन आउटपुट, आदि) या एक वैरिएबल वैल्यू में आउटपुट करना होगा। जब भाषा स्पष्ट रूप से आउटपुट करती है, तो इसे stdout में जाना चाहिए । मानक खामियों पर रोक लगाई जाती है।
भाषा विनिर्देश
प्रसंस्करण और सिंटेक्स
भाषा में प्रसंस्करण का एक बहुत ही सरल रूप है क्योंकि यह केवल स्ट्रिंग हेरफेर करता है: यह एक खाली स्ट्रिंग ( ""
) के साथ शुरू होता है , और प्रत्येक शब्द के साथ इसे बदलता है। एक शब्द एक या दो भागों से बना होता है: एक फ़ंक्शन (नीचे) जिसके बाद संभवतः एक पैरामीटर (नीचे) होता है, जो उसके व्यवहार को संपादित करता है। शर्तों को पाइप ( |
) द्वारा अलग किया जाता है । आप मान सकते हैं कि यह एक खाली कार्यक्रम नहीं होगा, और कोई शब्द खाली नहीं होगा। आपको प्रोग्राम के अंत में वैल्यू आउटपुट करना चाहिए।
कार्य
भाषा के केवल 6 कार्य हैं, जैसा कि नीचे दिखाया गया है। प्रत्येक फ़ंक्शन या तो एक या शून्य पैरामीटर स्वीकार करता है।
+
समतल तार (एक स्ट्रिंग पैरामीटर लेता है, इसे वर्तमान मान तक पहुंचाता है)!
वर्तमान मूल्य के वर्ण क्रम को उल्टा करें (कोई पैरामीटर नहीं)*
स्ट्रिंग को दोहराएं (एक पूर्णांक पैरामीटर लेता है, वर्तमान मूल्य को कई बार दोहराता है)-
मान की सभी आवृत्तियों को निकालता है (एक स्ट्रिंग पैरामीटर लेता है, इसके सभी आवृत्तियों को वर्तमान मान से निकाल देता है)$
[छद्म-] बेतरतीब ढंग से वर्तमान मूल्य (कोई पैरामीटर नहीं) फेरबदल<
आउटपुट वर्तमान मानstdout
(कोई पैरामीटर नहीं)
मान
ये वे मान हैं जो फ़ंक्शन में दिए जा सकते हैं, जो रेगेक्स द्वारा दर्शाए गए हैं जो उनसे मेल खाएंगे:
@[^|]*
एक स्ट्रिंग शाब्दिक, जिसमें पाइप के अलावा कोई भी चरित्र शामिल है। यह खाली हो सकता है।#[0-9]+
पूर्णांक शाब्दिक>
की अगली पंक्तिstdin
। यदि के साथ प्रयोग किया जाता है*
, तो पूर्णांक में बदलें।
परीक्षण के मामलों
╔════════════════════════╤═════════════╤══════════════╗
║code │input │output ║
╟────────────────────────┼─────────────┼──────────────╢
║+>|!|+@hello|*> │13 │31hello31hello║
║ │2 │ ║
╟────────────────────────┼─────────────┼──────────────╢
║+>|+@abcdefg|$ │hello │hcloeebafdlg ║
╟────────────────────────┼─────────────┼──────────────╢
║+@how areyou|-@o|-> │w │h areyu ║
╟────────────────────────┼─────────────┼──────────────╢
║+@out|<|*#3 │ │out ║
║ │ │outoutout ║
╟────────────────────────┼─────────────┼──────────────╢
║+> │what ever 345│what ever 345 ║
╟────────────────────────┼─────────────┼──────────────╢
║+@$pe<i@l|<|-@$pe<i@l|+>│A|$o $pe<!@| │$pe<i@l ║
║ │ │A|$o $pe<!@| ║
╟────────────────────────┼─────────────┼──────────────╢
║<|+>|!|< │input text | ║
║ │ │txet tupni ║
║ │ │txet tupni ║
╟────────────────────────┼─────────────┼──────────────╢
║+@># │ |># ║
╚════════════════════════╧═════════════╧══════════════╝
ध्यान दें कि परीक्षण का मामला 2 यादृच्छिक है, इसलिए इसमें वर्णों का कोई भी क्रमांकन मान्य है। इसके अलावा, तालिका में आउटपुट न्यूलाइन द्वारा अलग किए जाते हैं, लेकिन आपके कार्यक्रम को ऐसा करने की आवश्यकता नहीं है। प्रत्येक मामले में अंतिम मूल्य अंतिम आउटपुट।
उदाहरण (अन-गोल्फ) अजगर दुभाषिया
इसे ऑनलाइन आज़माएं! IMO बेहतर है यदि आप इसे IDLE या आपके द्वारा उपयोग किए जाने वाले माध्यम से चलाते हैं। (मैंने इसे 424 बाइट्स के बाद नीचे कर दिया, लेकिन मुझे यकीन है कि आप बहुत कुछ बेहतर कर सकते हैं)।
<
सामने आती है। क्या यह अनिवार्य है?
+@>#
,? मैंने #
अस्वस्थ किया ।