मेटाक्वाइन एक प्रोग्राम है जो कि एक क्वीन नहीं है, लेकिन जिसका आउटपुट, जब उसी भाषा में प्रोग्राम के रूप में चलाया जाता है, तो वह एक क्वीन है।
इस चुनौती का लक्ष्य एक मेटाक्वाइन लिखना है। यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है, टाईब्रेकर के रूप में जल्द से जल्द जवाब के साथ। ध्यान दें कि एक क्वीन की परिभाषा के कारण केवल पूर्ण कार्यक्रम स्वीकार्य हैं।
नियम के लिए नियम
केवल सच quines स्वीकार कर रहे हैं। यही है, आपको पूरे स्रोत कोड को शब्दशः प्रिंट करने की आवश्यकता है, बिना :
- अपने स्रोत कोड को पढ़ना, प्रत्यक्ष या अप्रत्यक्ष रूप से।
- एक REPL वातावरण पर निर्भर है जो सिर्फ मूल्यांकन करता है और आपके द्वारा खिलाए गए प्रत्येक अभिव्यक्ति को प्रिंट करता है।
- भाषा की विशेषताओं पर भरोसा करना जो केवल कुछ मामलों में स्रोत का प्रिंट आउट करते हैं।
- क्वीन के सभी या भाग को लिखने के लिए त्रुटि संदेश या STDERR का उपयोग करना। (आप STDERR को चीजें लिख सकते हैं या चेतावनी / गैर-घातक त्रुटियां उत्पन्न कर सकते हैं जब तक कि STDOUT एक वैध क्वीन है और त्रुटि संदेश इसका हिस्सा नहीं हैं।)
- स्रोत कोड में शाब्दिक रूप से शामिल हैं (चाहे वे स्ट्रिंग शाब्दिक हों, संख्यात्मक शाब्दिक, आदि) और / या एनओपी।
किसी भी गैर-दमनकारी आउटपुट (जैसे कॉपीराइट नोटिस, स्टार्टअप / शटडाउन संदेश, या एक अनुगामी लाइन फ़ीड) को क्वीन की वैधता के लिए आउटपुट में अनदेखा किया जा सकता है।
उदाहरण
नियम की अनदेखी करना जो शाब्दिक-केवल कार्यक्रमों और अंतर्निहित क्विंग को मना करता है, यह गंभीर रूप से एक मेटाक्वाइन होगा:
"Q"
कार्यक्रम में एकल स्ट्रिंग शाब्दिक शामिल हैं "Q"
, जो कि आउटपुट पर स्पष्ट रूप से मुद्रित है। जब आउटपुट ( Q
) चलाया जाता है, तो यह एक क्वीन है ( Q
बिल्ट-इन क्वाइन फ़ंक्शन है)।
T
एक आसान 1 बाइट पाइथ उत्तर है।