सबसे आम मानक कार्यों में से एक (विशेषकर जब गूढ़ प्रोग्रामिंग भाषाओं को दिखाने के लिए) एक "बिल्ली कार्यक्रम" को लागू करना है : एसटीडीआईएन के सभी को पढ़ें और इसे एसटीडीयूएसटी पर प्रिंट करें। हालांकि इसका नाम यूनिक्स शैल उपयोगिता के नाम पर रखा गया है, cat
लेकिन यह वास्तविक चीज़ों की तुलना में बहुत कम शक्तिशाली है, जिसे आम तौर पर डिस्क से पढ़ी जाने वाली कई फ़ाइलों को प्रिंट (और संक्षिप्त) करने के लिए उपयोग किया जाता है।
कार्य
आपको एक पूर्ण कार्यक्रम लिखना चाहिए जो मानक इनपुट स्ट्रीम की सामग्री को पढ़ता है और उन्हें मानक आउटपुट स्ट्रीम में शब्दशः लिखता है। यदि आपकी भाषा केवल मानक इनपुट और / या आउटपुट स्ट्रीम (जैसा कि अधिकांश भाषाओं में समझा जाता है) का समर्थन नहीं करती है, तो आप इन शब्दों को अपनी भाषा में अपने निकटतम समकक्ष (उदाहरण के लिए जावास्क्रिप्ट ) prompt
और ले सकते हैं alert
। ये I / O के केवल स्वीकार्य रूप हैं, क्योंकि कोई भी अन्य इंटरफ़ेस बड़े पैमाने पर कार्य की प्रकृति को बदल देगा और उत्तरों को काफी कम तुलनीय बना देगा।
आउटपुट में बिल्कुल इनपुट होना चाहिए और कुछ नहीं । इस नियम का एकमात्र अपवाद आपकी भाषा के दुभाषिया का निरंतर उत्पादन है जिसे दबाया नहीं जा सकता है, जैसे कि ग्रीटिंग, एएनएसआई रंग कोड या इंडेंटेशन। यह अनुगामी न्यूलाइन्स पर भी लागू होता है। यदि इनपुट में अनुगामी न्यूलाइन नहीं है, तो आउटपुट में एक भी शामिल नहीं होना चाहिए! (एकमात्र अपवाद यदि आपकी भाषा पूरी तरह से निष्पादन के बाद हमेशा एक नई रूपरेखा प्रस्तुत करती है।)
मानक त्रुटि स्ट्रीम के आउटपुट को अनदेखा किया जाता है, इसलिए जब तक मानक आउटपुट स्ट्रीम में अपेक्षित आउटपुट नहीं होता है। विशेष रूप से, इसका मतलब है कि आपका प्रोग्राम स्ट्रीम (EOF) के अंत को हिट करने में त्रुटि के साथ समाप्त हो सकता है, बशर्ते कि मानक आउटपुट स्ट्रीम को प्रदूषित नहीं करता है। यदि आप ऐसा करते हैं, तो मैं आपको अपने उत्तर के लिए एक त्रुटि-मुक्त संस्करण जोड़ने के लिए प्रोत्साहित करता हूं (संदर्भ के लिए)।
जैसा कि प्रत्येक भाषा के भीतर एक चुनौती के रूप में किया जाता है और भाषाओं के बीच नहीं, कुछ भाषा विशिष्ट नियम हैं:
- यदि आपकी भाषा में ईओएफ से मानक इनपुट स्ट्रीम में नल बाइट्स को अलग करना संभव है, तो आपके प्रोग्राम को किसी भी अन्य बाइट्स की तरह अशक्त बाइट्स का समर्थन करना चाहिए (अर्थात, उन्हें मानक आउटपुट स्ट्रीम पर भी लिखा जाना चाहिए)।
- यदि यह अपनी भाषा एक का समर्थन करने के लिए सभी संभव पर है मनमाने ढंग से अनंत इनपुट धारा (यानी अगर आप इससे पहले कि आप इनपुट में EOF मारा मुद्रण उत्पादन के लिए बाइट्स शुरू कर सकते हैं), अपने कार्यक्रम इस मामले में सही ढंग से काम करने के लिए है। एक उदाहरण के रूप में एक
yes | tr -d \\n | ./my_cat
अनंत धारा को मुद्रित करना चाहिएy
। यह आप पर निर्भर करता है कि आप कितनी बार मानक आउटपुट स्ट्रीम को प्रिंट और फ्लश करते हैं, लेकिन यह निश्चित समय के बाद होने की गारंटी होनी चाहिए, चाहे स्ट्रीम की परवाह किए बिना (इसका मतलब है, विशेष रूप से, कि आप किसी विशिष्ट वर्ण की प्रतीक्षा नहीं कर सकते हैं) मुद्रण से पहले एक लाइनफीड)।
कृपया अपने उत्तर के बारे में उत्तर-बाइट्स, अनंत धाराओं और बाहरी आउटपुट के बारे में सटीक व्यवहार के लिए एक नोट जोड़ें।
अतिरिक्त नियम
यह इसके लिए सबसे छोटे समाधान के साथ भाषा खोजने के बारे में नहीं है (कुछ ऐसे हैं जहां खाली कार्यक्रम चाल करता है) - यह हर भाषा में सबसे छोटा समाधान खोजने के बारे में है । इसलिए, कोई जवाब स्वीकार के रूप में चिह्नित नहीं किया जाएगा।
अधिकांश भाषाओं में प्रस्तुतियाँ बाइट्स में एक उपयुक्त preexisting एन्कोडिंग में बनाई जाएंगी , आमतौर पर (लेकिन जरूरी नहीं) UTF-8।
कुछ भाषाएं, जैसे फ़ोल्डर , स्कोर करने के लिए थोड़ा मुश्किल हैं। यदि संदेह हो तो कृपया मेटा पर पूछें ।
इस चुनौती की तुलना में नया होने पर भी किसी भाषा (या भाषा संस्करण) का उपयोग करने के लिए स्वतंत्र महसूस करें। विशेष रूप से इस चुनौती का 0-बाइट जवाब प्रस्तुत करने के लिए लिखी जाने वाली भाषाएं निष्पक्ष खेल हैं, लेकिन विशेष रूप से दिलचस्प नहीं हैं।
ध्यान दें कि एक दुभाषिया होना चाहिए ताकि सबमिशन का परीक्षण किया जा सके। यह अनुमति दी जाती है (और यहां तक कि प्रोत्साहित किया जाता है) कि इस दुभाषिया को पहले से बिना पढ़ी हुई भाषा के लिए स्वयं लिखें।
यह भी ध्यान दें कि भाषाओं को प्रोग्रामिंग भाषाओं के लिए हमारे सामान्य मानदंडों को पूरा करना है ।
यदि आपकी पसंद की भाषा किसी अन्य (संभावित रूप से अधिक लोकप्रिय) भाषा का एक तुच्छ संस्करण है, जिसमें पहले से ही एक उत्तर है (बेसिक या एसक्यूएल बोलियों, यूनिक्स के गोले या हेडस्कॉक या यूनरी की तरह तुच्छ ब्रेनफक डेरिवेटिव) पर विचार करें, मौजूदा उत्तर के लिए एक नोट जोड़ने पर विचार करें। समान या बहुत समान समाधान दूसरी भाषा में भी सबसे छोटा है।
जब तक कि उन्हें पहले से अधिलेखित नहीं किया गया है, सभी मानक कोड-गोल्फ नियम लागू होते हैं, जिसमें http://meta.codegolf.stackexchange.com/q/1061 शामिल है ।
एक साइड नोट के रूप में, कृपया उन भाषाओं में उबाऊ (लेकिन मान्य) उत्तर न दें जहां गोल्फ के लिए बहुत कुछ नहीं है; ये अभी भी इस प्रश्न के लिए उपयोगी हैं क्योंकि यह एक कैटलॉग को यथासंभव पूरा करने का प्रयास करता है। हालांकि, मुख्य रूप से उन भाषाओं में जवाब देते हैं जहां लेखक को वास्तव में कोड को गोल करने में प्रयास करना था।
सूची
इस पोस्ट के निचले भाग में स्टैक स्निपेट उत्तर से सूची बनाता है) क) प्रति भाषा में सबसे छोटे समाधान की सूची के रूप में और बी) एक समग्र लीडरबोर्ड के रूप में।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिख रहा है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
## Language Name, N bytes
N
आपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
## Ruby, <s>104</s> <s>101</s> 96 bytes
यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:
## Perl, 43 + 2 (-p flag) = 45 bytes
आप भाषा के नाम को एक लिंक भी बना सकते हैं जो बाद में स्निपेट में दिखाई देगा:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
sh
उत्तर है cat
जिसका उपयोग करके भी एक छोटा समाधान शामिल है dd
।)
cat