সর্বাধিক সাধারণ স্ট্যান্ডার্ড কাজগুলির মধ্যে একটি (বিশেষত এসোস্টারিক প্রোগ্রামিং ল্যাংগুয়েজগুলি প্রদর্শন করার সময়) "বিড়াল প্রোগ্রাম" বাস্তবায়ন করা : সমস্ত এসটিডিআইএন পড়ুন এবং এটি স্টাডিউটে মুদ্রণ করুন। যদিও এটি ইউনিক্স শেল ইউটিলিটির নামে নামকরণ করা হয়েছে এটি cat
অবশ্যই আসল জিনিসের তুলনায় খুব কম শক্তিশালী, যা সাধারণত ডিস্ক থেকে পড়া কয়েকটি ফাইল মুদ্রণ করতে ব্যবহৃত হয় (এবং সাথে যুক্ত)।
কার্য
আপনার একটি সম্পূর্ণ প্রোগ্রাম লিখতে হবে যা স্ট্যান্ডার্ড ইনপুট স্ট্রিমের বিষয়বস্তু পড়ে এবং স্ট্যান্ডার্ড আউটপুট প্রবাহে তাদের ভারব্যাটিম লিখে। যদি এবং কেবল যদি আপনার ভাষা স্ট্যান্ডার্ড ইনপুট এবং / অথবা আউটপুট স্ট্রিমগুলি সমর্থন করে না (বেশিরভাগ ভাষায় বোঝা যায়) তবে আপনি পরিবর্তে এই শর্তাদি আপনার ভাষার নিকটতম সমতুল্য হিসাবে বোঝাতে পারেন (যেমন জাভাস্ক্রিপ্ট prompt
এবং alert
)। এগুলি কেবলমাত্র I / O এর একমাত্র স্বীকৃত ফর্ম, কারণ অন্য কোনও ইন্টারফেস মূলত কাজের প্রকৃতি পরিবর্তন করে এবং উত্তরগুলিকে অনেক কম তুলনীয় করে তুলবে।
আউটপুটে হুবহু ইনপুট এবং অন্য কিছুই থাকতে হবে । এই নিয়মের একমাত্র ব্যতিক্রম হ'ল আপনার ভাষার অনুবাদকের ধ্রুবক আউটপুট যা দমন করা যায় না, যেমন গ্রিটিংস, এএনএসআই রঙ কোড বা ইন্ডেন্টেশন। এটি ট্রেলিং করা নতুন লাইনের ক্ষেত্রেও প্রযোজ্য। যদি ইনপুটটিতে একটি পেছনের নতুন লাইন না থাকে তবে আউটপুটটিতে একটিও অন্তর্ভুক্ত করা উচিত নয়! (একমাত্র ব্যতিক্রম যদি আপনার ভাষা সম্পূর্ণরূপে মৃত্যুদন্ড কার্যকর হওয়ার পরে একটি পেছনের নতুন লাইন প্রিন্ট করে))
স্ট্যান্ডার্ড ত্রুটি স্ট্রিমের আউটপুট উপেক্ষা করা হবে, যতক্ষণ না স্ট্যান্ডার্ড আউটপুট স্ট্রিমের মধ্যে প্রত্যাশিত আউটপুট থাকে। বিশেষত, এর অর্থ হল আপনার প্রোগ্রামটি স্ট্রিমের শেষ অংশ (ইওএফ) মারার পরে একটি ত্রুটি দিয়ে শেষ করতে পারে, তবে শর্ত থাকে যে স্ট্যান্ডার্ড আউটপুট প্রবাহকে দূষিত না করে। আপনি যদি এটি করেন তবে আমি আপনাকে উত্তরের সাথে একটি ত্রুটি-মুক্ত সংস্করণ যুক্ত করতে উত্সাহিত করব (রেফারেন্সের জন্য)।
যেহেতু এটি প্রতিটি ভাষার মধ্যে নয় বরং ভাষার মধ্যে একটি চ্যালেঞ্জ হিসাবে চিহ্নিত, তাই এখানে কয়েকটি ভাষা নির্দিষ্ট নিয়ম রয়েছে:
- ইওএফ থেকে স্ট্যান্ডার্ড ইনপুট প্রবাহে নাল বাইটের পার্থক্য করা আপনার ভাষায় যদি সম্ভব হয় তবে আপনার প্রোগ্রামটি অবশ্যই অন্যান্য বাইটের মতো নাল বাইটকে সমর্থন করবে (এটি স্ট্যান্ডার্ড আউটপুট স্ট্রিমেও লিখতে হবে)।
- যদি আপনার ভাষাতে কোনও স্বেচ্ছাচারী অসীম ইনপুট স্ট্রিম সমর্থন করা সম্ভব হয় (যেমন আপনি যদি ইনপুটটিতে ইওএফ হিট করার আগে আউটপুটটিতে বাইটগুলি মুদ্রণ শুরু করতে পারেন) তবে এই ক্ষেত্রে আপনার প্রোগ্রামটি সঠিকভাবে কাজ করতে হবে। উদাহরণ হিসাবে s এর
yes | tr -d \\n | ./my_cat
একটি অসীম প্রবাহ মুদ্রণ করা উচিতy
। স্ট্যান্ডার্ড আউটপুট প্রবাহটি আপনি কতবার মুদ্রণ করেন এবং ফ্লাশ করেন এটি আপনার উপর নির্ভর করে, তবে প্রবাহ নির্বিশেষে একটি সীমাবদ্ধ সময়ের পরে অবশ্যই তার নিশ্চয়তা দিতে হবে (এর অর্থ, বিশেষত, আপনি যেমন নির্দিষ্ট চরিত্রের জন্য অপেক্ষা করতে পারবেন না মুদ্রণের আগে একটি লাইনফিড)।
নাল-বাইটস, অসীম স্ট্রিম এবং এক্সটেনারাস আউটপুট সম্পর্কিত সঠিক আচরণ সম্পর্কে দয়া করে আপনার উত্তরে একটি নোট যুক্ত করুন।
অতিরিক্ত বিধি
এটি এর জন্য স্বল্পতম সমাধানের সাহায্যে ভাষা সন্ধানের বিষয়ে নয় (এমন কিছু কিছু রয়েছে যেখানে খালি প্রোগ্রামটি কৌশলটি ব্যবহার করে) - এটি প্রতিটি ভাষায় সংক্ষিপ্ততম সমাধানটি সন্ধান করা । সুতরাং, কোন উত্তর গৃহীত হিসাবে চিহ্নিত করা হবে না।
বেশিরভাগ ভাষায় জমা দেওয়া যথাযথ প্রিফিক্সিং এনকোডিংয়ে বাইটে স্কোর করা হবে , সাধারণত (তবে অগত্যা নয়) ইউটিএফ -8।
ফোল্ডারগুলির মতো কিছু ভাষাও স্কোর করতে কিছুটা জটিল। যদি সন্দেহ হয় তবে দয়া করে মেটাকে জিজ্ঞাসা করুন ।
এই চ্যালেঞ্জের চেয়ে নতুন হলেও ভাষা (বা ভাষার সংস্করণ) নির্দ্বিধায় ব্যবহার করুন। এই চ্যালেঞ্জটির 0-বাইট উত্তর জমা দেওয়ার জন্য বিশেষভাবে লেখা ভাষাগুলি ন্যায্য খেলা তবে বিশেষ আকর্ষণীয় নয়।
নোট করুন যে সেখানে একজন দোভাষী থাকতে হবে যাতে জমাটি পরীক্ষা করা যায়। পূর্ববর্তী অপ্রয়োজনীয় ভাষার জন্য নিজেকে এই অনুবাদক লিখতে (এবং এমনকি উত্সাহিত) অনুমতি দেওয়া হয়েছে।
এছাড়াও নোট করুন যে ভাষাগুলি প্রোগ্রামিং ভাষাগুলির জন্য আমাদের সাধারণ মানদণ্ডটি পূরণ করতে পারে ।
যদি আপনার পছন্দের ভাষাটি অন্য একটি (তাত্পর্যপূর্ণভাবে জনপ্রিয়) ভাষার একটি তুচ্ছ বৈকল্পিক যার ইতিমধ্যে একটি উত্তর রয়েছে (মনে করুন বেসিক বা এসকিউএল উপভাষাগুলি, ইউনিক্স শেলস বা ত্রিভুজ ব্রেইনফাক ডেরিভেটিভস যেমন হেডস্যাকস বা ইউনারি) বিদ্যমান উত্তরটিতে একটি নোট যোগ করার কথা বিবেচনা করুন একই বা খুব অনুরূপ সমাধানটি অন্য ভাষায় স্বল্পতম।
আগে এগুলি বাতিল করা না হলে, http://meta.codegolf.stackexchange.com/q/1061 সহ সমস্ত স্ট্যান্ডার্ড কোড-গল্ফ বিধি প্রযোজ্য ।
পার্শ্ব নোট হিসাবে, দয়া করে এমন ভাষাগুলিতে বিরক্তিকর (তবে বৈধ) উত্তরগুলি কমে যাবেন না যেখানে গল্ফ করার মতো খুব বেশি কিছু নেই; এটি এখনও এই প্রশ্নের পক্ষে দরকারী কারণ এটি যতটা সম্ভব সম্পূর্ণ একটি ক্যাটালগ সংকলন করার চেষ্টা করে। তবে, প্রাথমিকভাবে সেই ভাষাগুলিতে উত্তরগুলি উপবিষ্ট করুন যেখানে লেখককে আসলে কোডটি গল্ফ করার জন্য প্রচেষ্টা করতে হয়েছিল।
তালিকা
এই পোস্টের নীচে স্ট্যাক স্নিপেট উত্তরগুলি থেকে ক্যাটালগ তৈরি করে a) ভাষার প্রতি সংক্ষিপ্ত সমাধানের তালিকা হিসাবে এবং খ) সামগ্রিক লিডারবোর্ড হিসাবে।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
## 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