मान लीजिए कि आपके पास 2 भाषाएँ हैं, A
और B
। एक स्ट्रिंग s
एक अर्धवृत्त है A
और B
यदि यह निम्नलिखित शर्तों को पूरा करती है:
s
भाषा में एक क्वीन हैA
।s
में एक बहुभाषी हैA
औरB
।- प्रोग्राम के
s
रूप में चलने का आउटपुटB
एक अलग स्ट्रिंग हैs'
, जो कि एक क्वीन हैB
।
इस चुनौती का लक्ष्य दो अलग-अलग भाषाओं में एक संगोष्ठी लिखना है। यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है, टाईब्रेकर के रूप में जल्द से जल्द जवाब के साथ।
नियम के लिए नियम
केवल सच quines स्वीकार कर रहे हैं। यही है, आपको पूरे स्रोत कोड को शब्दशः प्रिंट करने की आवश्यकता है, बिना :
- अपने स्रोत कोड को पढ़ना, प्रत्यक्ष या अप्रत्यक्ष रूप से।
- एक REPL वातावरण पर निर्भर है जो सिर्फ मूल्यांकन करता है और आपके द्वारा खिलाए गए प्रत्येक अभिव्यक्ति को प्रिंट करता है।
- भाषा की विशेषताओं पर भरोसा करना जो केवल कुछ मामलों में स्रोत को प्रिंट करते हैं।
- त्रुटि संदेश या STDERR का उपयोग करके सभी या क्वीन का हिस्सा लिखें। (आप STDERR को चीजें लिख सकते हैं या चेतावनी / गैर-घातक त्रुटियाँ पैदा कर सकते हैं जब तक कि STDOUT एक वैध क्वीन है और त्रुटि संदेश इसका हिस्सा नहीं हैं।)
इसके अलावा, आपके स्रोत कोड में शुद्ध रूप से शाब्दिक (चाहे वे स्ट्रिंग शाब्दिक, संख्यात्मक शाब्दिक हों, आदि) और / या एमओपी शामिल नहीं होने चाहिए। उदाहरण के लिए, `12
जेली और पायथ में एक बहुभुज है, लेकिन जेली में यह एक एनओपी और एक संख्यात्मक शाब्दिक है, इसलिए यह मान्य नहीं है।
किसी भी गैर-दमनकारी आउटपुट (जैसे कि कॉपीराइट नोटिस, स्टार्टअप / शटडाउन संदेश, या एक अनुगामी लाइन फ़ीड) को उत्पादन में अनदेखा किया जा सकता है, जो कि रानी की वैधता की खातिर है।
Polyglots के लिए नियम
उपयोग की जाने वाली दो भाषाएँ अलग-अलग होनी चाहिए। विशेष रूप से:
- वे एक ही भाषा के अलग-अलग संस्करण नहीं होने चाहिए (जैसे कि पायथन 2 बनाम पायथन 3)।
- वे एक ही भाषा (जैसे पास्कल बनाम डेल्फी) की अलग-अलग बोलियाँ नहीं होनी चाहिए।
- एक भाषा अन्य एक का उपसमूह नहीं हो सकती है (जैसे C बनाम C ++ 1 )।
- एक भाषा अन्य की तुच्छ व्युत्पन्न नहीं हो सकती है (उदाहरण के लिए माटलैब बनाम ऑक्टेव 2 , ब्रेनफक बनाम बूलफक बनाम टाइनीबीएफ बनाम शादियासफेक बनाम अन्य सभी तुच्छ ब्रेनफक डेरिवेटिव)।
विविध नियम
- आप STDIN (या किसी अन्य स्रोत) से इनपुट स्वीकार नहीं कर सकते हैं। यदि आपकी चुनी हुई भाषा को इनपुट लेना चाहिए , तो या तो इनपुट खाली होना चाहिए (खाली स्ट्रिंग, से पाइप
/dev/null
, आदि), या प्रोग्राम का आउटपुट इनपुट पर निर्भर नहीं होना चाहिए। - इस चुनौती के लिए, आपको एक पूरा कार्यक्रम लिखना होगा। समाधान को चलाने के लिए अतिरिक्त कोड की आवश्यकता नहीं है (जैसे समाधान में परिभाषित लंबो फ़ंक्शन को असाइन करना और कॉल करना)।
1: हाँ मुझे पता है कि C वास्तव में C ++ का सबसेट नहीं है। यह पॉलीग्लॉट्स के उद्देश्य के लिए एक माना जाने वाला पर्याप्त है, हालांकि, इसलिए मैं इसे इस चुनौती के लिए गिन रहा हूं।
2: बिंदु 1 से ऊपर की तरह, हालांकि ऑक्टेव तकनीकी रूप से मतलाब के साथ 100% संगत नहीं है, यह संगत होने के लिए डिज़ाइन किया गया था, और यह काफी करीब है कि एक मटलैब / ऑक्टेव बहुवचन को चुनौती देने की अनुमति देगा।