সাধারণ বিড়াল প্রোগ্রাম


84

সর্বাধিক সাধারণ স্ট্যান্ডার্ড কাজগুলির মধ্যে একটি (বিশেষত এসোস্টারিক প্রোগ্রামিং ল্যাংগুয়েজগুলি প্রদর্শন করার সময়) "বিড়াল প্রোগ্রাম" বাস্তবায়ন করা : সমস্ত এসটিডিআইএন পড়ুন এবং এটি স্টাডিউটে মুদ্রণ করুন। যদিও এটি ইউনিক্স শেল ইউটিলিটির নামে নামকরণ করা হয়েছে এটি 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


52
বাশ, 3 বাইট :cat
থিডক্টর

3
@ ডক্টর আমি অনুমান করি যে এটি "একটি বিল্টিন ব্যবহার করবেন না যা সঠিকভাবে যা প্রয়োজন ঠিক তা করে" নিয়মের মধ্যে পড়ে।
পাওলো ইবারম্যান

5
@ পাওলোএবারম্যান এ জাতীয় কোনও নিয়ম নেই এবং সংশ্লিষ্ট মানক লুফোলটি আর গ্রহণযোগ্য নয়। (প্রকৃতপক্ষে, ইতিমধ্যে shব্যবহারের একটি উত্তর catরয়েছে যার মধ্যে একটি সংক্ষিপ্ত সমাধানও ব্যবহার করা রয়েছে dd))
মার্টিন ইন্ডার

1
কেবলমাত্র যদি এটি ইনপুট এবং আউটপুটের স্ট্যান্ডার্ড পদ্ধতিগুলি ব্যবহার করে: ///, 0 বাইট
কমরেড স্পার্কলপনি

1
@ স্পার্কলপনি ব্যতীত আপনাকে স্ল্যাশ এবং ব্যাকস্ল্যাশ থেকে বাঁচতে হবে।
মার্টিন এেন্ডার

উত্তর:


73

সেড, 0


খালি sedপ্রোগ্রামটি এখানে যা প্রয়োজন ঠিক তা করে:

$ printf "abc\ndef" | sed ''
abc
def$ 

3
কেউ লিখলে কী হয় yes | tr -d \\n | sed ''?
বেনগল্ডবার্গ

@ বেনগল্ডবার্গ ডিফল্টরূপে সেড প্রতি লাইন ভিত্তিতে কাজ করে, সুতরাং এই ক্ষেত্রে এটি yesস্মৃতিশক্তি শেষ না হওয়া অবধি এক প্যাটার্নের বাফারে স্লাপ করতে থাকবে। আমি মনে করি একটি সাবধানতা ...
ডিজিটাল ট্রমা

পসিএক্স নির্দেশ দেয় যে প্যাটার্ন স্পেসে কমপক্ষে 8192 বাইট, আইআইআরসি আকার থাকতে হবে। আমি জানি জিএনইউ বাস্তবায়নের একটি গতিশীল প্যাটার্ন স্পেস রয়েছে, যা কেবলমাত্র উপলব্ধ মেমরির মাধ্যমে সীমাবদ্ধ থাকে, সুতরাং আপনি সেইটিতে মোটামুটি নিরাপদ।
টবি স্পিড

59

জিম , 222 201 196 185 182 বাইট

    ↓ ↓

 ↓ ↓     ↓
 ↗ ↗↙↔↘↖ ↖
 ↓↓⤡⤢  ⤢↙
↘ ↖⤡ ↖
  ↙
  ↕↘ ↑ ↙
→↘↖↑ ↙ ↑
→↖   ↑
→↖↘ ↙
  ↑↓↑

   ⤡

এটি সম্ভবত আপনার ব্রাউজারে সঠিকভাবে প্রদর্শিত হবে না, সুতরাং এখানে কোডের একটি চিত্র রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

জিমের সমস্যা সমাধানের জন্য আমি একটি সহজ কাঠামোর কথা ভাবতে পারি না , তবে আমি নিশ্চিত যে আসল কোডটি এখনও বেশ গল্ফযোগ্য।

জিম সম্ভবত অসীম স্ট্রিমগুলি পরিচালনা করতে পারে না কারণ প্রোগ্রামের শেষে কেবল কোনও কিছু মুদ্রণ করা সম্ভব।

ব্যাখ্যা

যেহেতু জিমের একটি বরং অনন্য, ঘোষণামূলক নিয়ন্ত্রণ প্রবাহ মডেল একটি অত্যাবশ্যক সিউডোকোড অ্যালগরিদম এটি এখানে কাটবে না। পরিবর্তে, আমি জিমের বুনিয়াদি এবং বর্তমানের উপরের কোডটির পরিপাটি কাঠামো (একই ধরণের গ্রাফিকাল পদ্ধতিতে) ASCII শিল্প হিসাবে ব্যাখ্যা করব।

জিমের নিয়ন্ত্রণ প্রবাহ পুরো জায়গাতেই ঘটে: অন্য একটি তীর দ্বারা চিহ্নিত না হওয়া প্রতিটি তীর একটি "থ্রেড" আরম্ভ করে যা অন্যদের থেকে স্বতন্ত্রভাবে প্রক্রিয়াজাত হয় (সত্যিকারভাবে সমান্তরালে নয়, তবে কোন গ্যারান্টি নেই যে তারা কোন ক্রমে প্রক্রিয়া করছে) , যদি না আপনি এগুলিকে সংমিশ্রনের মাধ্যমে সিঙ্ক আপ করেন)। যেমন প্রতিটি থ্রেড হিসাবে শুরু বাইনারি ডিজিটের একটি তালিকা ঝুলিতে, {0}। কোডের প্রতিটি তীরটি কোনও না কোনও কমান্ড যা একটি বা দুটি ইনপুট এবং এক বা দুটি আউটপুট থাকে। সঠিক নির্দেশটি নির্ভর করে যে কতগুলি তীর এটির দিকে নির্দেশ করছে from

কমান্ডগুলির তালিকা এখানে রয়েছে, যেখানে m -> nনির্দেশিত হয় যে কমান্ডটি mইনপুট নেয় এবং nফলাফলগুলি আউটপুট দেয়।

  • 1 -> 1, No-op : কেবল থ্রেড পুনর্নির্দেশ করে।
  • 1 -> 1, বিপরীতমুখী : থ্রেডে প্রতিটি বিট অবহেলা করে (এবং এটি পুনঃনির্দেশও দেয়)।
  • 1 -> 1, পড়ুন : থ্রেডের মানটি এসটিডিআইএন থেকে পরবর্তী বিট দ্বারা প্রতিস্থাপন করে , বা যদি আমরা ইওএফ-তে আঘাত করি তবে খালি তালিকা দিয়ে।
  • 2 -> 1, যুক্তিযুক্ত : থ্রেডগুলি সিঙ্ক করার এটিই একমাত্র উপায়। যখন কোনও থ্রেড তীরটির একপাশে আঘাত করে, অন্য থ্রেড অন্যদিকে আঘাত না করা অবধি স্থগিত থাকবে। এই মুহুর্তে এগুলি একক থ্রেডে সংমিশ্রিত করা হবে এবং কার্যকর করা চালিয়ে যাবে।
  • 2 -> 1, লেবেল : বিভিন্ন কার্যকরকরণের পথে যোগদানের একমাত্র উপায় এটি। এটি কেবল একটি অন-অপশন যা দুটি সম্ভাব্য ইনপুট রয়েছে। সুতরাং যে কোনও রুট দিয়ে "লেবেল" প্রবেশ করানো থ্রেডগুলি কেবল একই দিকে পুনর্নির্দেশ করা হবে।
  • 1 -> 2, বিভাজন : একটি একক থ্রেড নেয় এবং দুটি কপি বিভিন্ন দিক থেকে প্রেরণ করে।
  • 1 -> 1, ইজিরো? : থ্রেডের প্রথম বিট গ্রহণ করে এবং বিট 0 বা 1 ছিল কিনা তার উপর নির্ভর করে থ্রেডটিকে দুটি দিকের একটিতে প্রেরণ করে।
  • 1 -> 1, এম্পটি? : পুরো তালিকাটি গ্রাস করে (যেমন খালি তালিকার সাথে এটি প্রতিস্থাপন করে) এবং তালিকাটি ইতিমধ্যে খালি ছিল কি না তার উপর নির্ভর করে থ্রেড দুটি দিকের একটিতে প্রেরণ করে।

সুতরাং এটি মনে রেখে আমরা একটি সাধারণ কৌশল বের করতে পারি। কনকেনেটেট ব্যবহার করে আমরা বারবার একটি স্ট্রিংয়ে নতুন বিট যুক্ত করতে চাই যা পুরো ইনপুট উপস্থাপন করে। আমরা কেবল আউটপুট লুপিং এটা করতে পারেন CONCATENATE ফিরে তার ইনপুট এক মধ্যে (এবং আমরা একটি খালি তালিকা এই ইনিশিয়ালাইজ, একটি ক্লিয়ারিং দ্বারা {0}সঙ্গে isEmpty? )। প্রশ্নটি কীভাবে আমরা এই প্রক্রিয়াটি শেষ করতে পারি।

বর্তমান বিট সংযোজন ছাড়াও আমরা ইওএফ পৌঁছেছি কি না তা নির্দেশ করে 0 বা 1 প্রেন্ডও করে দেব । আমরা যদি আমাদের স্ট্রিংটি ইজজিরোর মাধ্যমে প্রেরণ করি? , এটি আবার সেই বিট থেকে মুক্তি পাবে, তবে আসুন আমরা প্রবাহের শেষটি আলাদা করতে পারি, সেই ক্ষেত্রে আমরা থ্রেডটিকে গ্রিডের প্রান্তটি ছেড়ে দিতে পারি (যার কারণেই জিম থ্রেডের বিষয়বস্তুগুলি STDOUT এ মুদ্রণ করে প্রোগ্রামটি শেষ করে দেয়) ।

আমরা ইওএফ পৌঁছেছি কি না তা এসপিটি ব্যবহার করে নির্ধারণ করা যায়? ইনপুট একটি অনুলিপি।

আমি প্রতিশ্রুতিবদ্ধ চিত্রটি এখানে:

              +----------------------------+   {0} --> isEmpty --> label <--+
              |                            |                    n    |      |
              v                            |                         v      |
    {0} --> label --> read --> split --> split ------------------> concat   |
                                 |                                   |      |
                           n     v     y                             |      |
 inv --> label --> concat <-- isEmpty --> concat <-- label <-- {0}   |      |
  ^        ^          |                     |          ^             |      |
  |        |          v                     v          |             |      |
 {0}       +------- split ---> label <--- split -------+             |      |
                                 |                                   |      |
                                 +-------------> concat <------------+      |
                                                   |                        |
                                              y    v                        |
                         print and terminate <-- isZero --------------------+

কোথায় পড়া শুরু করবেন সে সম্পর্কে কয়েকটি নোট:

  • {0}উপরের বাম কোণায় প্রাথমিক ট্রিগার যা ইনপুট লুপ আরম্ভ করা হয়।
  • {0}উপরের ডান দিকের কোণায় প্রতি অবিলম্বে একটি খালি লিস্টে সাফ ইনিশিয়াল স্ট্রিং যা আমরা ধীরে ধীরে ইনপুট দিয়ে পূরণ করবো প্রতিনিধিত্ব করে।
  • অন্য দুটি {0}গুলি একটি "প্রযোজক" লুপ (একটি বিপরীত, একটি নয়) খাওয়ানো হয়, যাতে আমাদের স্ট্রিংকে আরও আগে চালিত করতে হবে এমন সীমাহীন সরবরাহ ও 0এস সরবরাহ 1করতে পারে।

29
এমনকি আপনার মস্তিষ্কটি কয়েক মিলিয়ন টিস্যুতে বিস্ফোরিত না হয়ে কীভাবে আপনি কীভাবে এমন কোনও প্রোগ্রাম লিখতে পারেন?
আশ্বিন গুপ্ত

40

হেক্সাগনি , 6 বাইট

এটি 3 বাইট ব্যবহৃত হত (নীচে দেখুন), তবে সংস্করণটি ভাষাটির সর্বশেষ আপডেটের পরে আর কাজ করে না। যেহেতু আমি কখনই সেই সংস্করণটি ব্যবহার করে ত্রুটিটি ইচ্ছাকৃতভাবে পরিচয় করিয়ে দিইনি, আমি এটি গণনা না করার সিদ্ধান্ত নিয়েছি।


একটি ত্রুটি-মুক্ত সমাধান (যেমন একটি স্থির দোভাষীর সাথে কাজ করে) অনেক জটিল হতে দেখা যায়। এটি 2x2 গ্রিডে চেপে ধরতে আমার কিছুটা সমস্যা হয়েছে তবে আমি এখনই একটি সমাধান পেয়েছি, যদিও আমার পুরো 7 বাইট দরকার :

<)@,;.(

উন্মুক্ত করার পরে, আমরা পাই:

এখানে চিত্র বর্ণনা লিখুন

যেহেতু প্রাথমিক স্মৃতি প্রান্তটি 0, <নিঃশর্তভাবে নির্দেশ পয়েন্টারটি উত্তর-পূর্ব ত্রিভুজটিতে প্রতিস্থাপন করে, যেখানে এটি ধূসর পথের সাথে আবৃত। .কোন সমিতি হয়। এখন ,একটি বাইট পড়ে, )এটি বৃদ্ধি করে যে বৈধ বাইটগুলি (নাল বাইট সহ) ইতিবাচক এবং ইওএফ 0 হয়।

সুতরাং ইওএফ-তে, আইপিটি লাল পথে মোড় দেয়, যেখানে @প্রোগ্রামটি শেষ হয়। তবে আমরা যদি এখনও একটি বাইট পড়ি, তবে আইপি সবুজ পাথের সাথে মোড়ক পরিবর্তিত হয় যেখানে (এটি মূল ;স্টুডে প্রিন্ট করার আগে প্রান্তটি হ্রাস করে । প্রক্রিয়াটি পুনরাবৃত্তি করে আইপি এখন নিঃশর্তভাবে ধূসর পথে ফিরে আসে।


আমার ট্রুথ মেশিনের উত্তরের জন্য ব্রুট ফোর্স স্ক্রিপ্ট লেখার পরে , আমি এটি বিড়াল প্রোগ্রামের জন্যও একটি ত্রুটি-মুক্ত 6-বাইট সমাধান সন্ধান করার জন্য সেট করেছি। আশ্চর্যজনকভাবে, এটি একটি খুঁজে পেয়েছিল - হ্যাঁ, সমস্ত সম্ভাব্য 6 বাইট হেক্সাগনি প্রোগ্রামগুলিতে ঠিক একটি সমাধান solution সত্য মেশিন থেকে 50 টি সমাধানের পরে, এটি বেশ অবাক হয়েছিল। কোডটি এখানে:

~/;,@~

ঘটনাটি:

এখানে চিত্র বর্ণনা লিখুন

এর ~পরিবর্তে (অ্যানারি অবহেলা) এর ব্যবহার ()আকর্ষণীয়, কারণ ক) এটি শূন্যের কোনও উত্তর নেই, খ) শাখার দিকটি বদলে দেয়, গ) কিছু কোডে এককটি ~নিজের সাথে অপারেশনটি পূর্বাবস্থায় ফেলার জন্য দু'বার ব্যবহার করা যেতে পারে । তাই এখানে যা চলছে তা এখানে:

প্রথম বার (বেগুনি পথ) ~এর মধ্য দিয়ে আমরা কোনও নো-আপ ছাড়ি। /উত্তর পশ্চিম তির্যক মধ্যে আইপি প্রতিফলিত করে। ধূসর পথটি এখন একটি অক্ষর পড়ে এবং এর অক্ষর কোডটি দ্বারা গুণ করে -1। এটি -1ইওএফ ( ) কে সত্যবাদী (ধনাত্মক) মান এবং সমস্ত বৈধ অক্ষরকে মিথ্যা (অ-ধনাত্মক) মানগুলিতে পরিণত করে। ইওএফের ক্ষেত্রে, আইপি লাল পথ নেয় এবং কোডটি সমাপ্ত হয়। কোনও বৈধ চরিত্রের ক্ষেত্রে, আইপি সবুজ পথ নেয়, যেখানে ~অগ্রাহ্যতা পূর্বাবস্থায় ফিরে আসে এবং ;চরিত্রটি মুদ্রণ করে। পদ্ধতি পুনরাবৃত্তি করুন।


অবশেষে, এখানে 3-বাইট সংস্করণ যা মূল সংস্করণ হেক্সাগনি দোভাষী ব্যবহার করে work

,;&

ল্যাবরেথ উত্তরের মতো, ইনপুট স্ট্রিম সীমাবদ্ধ থাকলে এটি একটি ত্রুটির সাথে শেষ হয়।

কোডটি উন্মোচন করার পরে, এটি নিম্নলিখিত হেক্স গ্রিডের সাথে মিলে যায়:

এখানে চিত্র বর্ণনা লিখুন

দ্য .নো অপস হয়। বেগুনি পথে ফাঁসি কার্যকর হয়।

,একটি বাইট পড়ে, একটি বাইট ;লিখে। তারপরে কার্যকর করা সালমন (ইশ?) পথে চালিয়ে যায়। আমাদের &বর্তমান মেমরি প্রান্তটি শূন্যে পুনরায় সেট করতে হবে, যেমন দ্বিতীয় সারির শেষে কোণে আঘাত করার সময় আইপি বেগুনি সারিতে ফিরে যায়। ,ইওএফ একবার আঘাত করলে এটি ফিরে আসবে -1, ;এটি মুদ্রণের চেষ্টা করার সময় একটি ত্রুটির কারণ হয়ে দাঁড়ায় ।


টিমভিয়ের আশ্চর্যজনক হেক্সাগনি কলরারের সাহায্যে চিত্রগুলি তৈরি করা হয়েছে ।


2
6-বাইট সংস্করণটি খুব, খুব চালাক। ব্রুট ফোর্সরা অবিশ্বাস্যরকম দুর্দান্ত হতে পারে।
ইটিএইচ প্রডাকশনস 16:38 এ 16:38

আপনার ব্রুট-ফোরসের কোনও লিঙ্ক আছে?
এমডি এক্সএফ

@ এমডিএক্সএফ আমি বিভিন্ন সংস্করণ চারপাশে রাখি না, তবে এটি সর্বদা এই রুবি স্ক্রিপ্টের কিছুটা পরিবর্তন করে ।
মার্টিন ইন্ডার

36

টিস্ক্রিপ্ট , 0 বাইট

টিস্ক্রিপ্ট জাভাস্ক্রিপ্টে সংকলিত একটি সংক্ষিপ্ত গল্ফ ভাষা


সাম্প্রতিক আপডেটে ইনপুট সুস্পষ্টভাবে প্রথম সম্পত্তি হিসাবে যুক্ত করা হয়েছে।

এটি অনলাইনে চেষ্টা করুন


বিকল্পভাবে, 1 বাইট

x

xটিস্ক্রিপ্টে ইনপুট রয়েছে। আউটপুট অন্তর্ভুক্ত


আমি এটি পোস্ট করতে
চলেছিলাম

5
হাহ, আমি ভেবেছিলাম "বিকল্পভাবে" একটি ভাষার নাম ...
কোয়েলক্লেফ

28

ব্রায়ান এবং চক , 44 বাইট

#{<{,+?+}_+{-?>}<?
_}>?>+<<<{>?_}>>.<+<+{<{?

আমি মূলত এই ভাষাটি তৈরি করেছি একটি প্রোগ্রামিং ভাষা তৈরি করার জন্য যা কেবলমাত্র অকেজো হিসাবে দেখা যায় । এটি গল্ফ সাধারণ সমস্যা যদিও এটি একটি খুব দুর্দান্ত অনুশীলন হতে দেখা যাচ্ছে।

বুনিয়াদি: দুটি লাইনের প্রতিটি একটি ব্রেনফাক-এর মতো প্রোগ্রামকে সংজ্ঞায়িত করে যা অন্য প্রোগ্রামের উত্স কোডে কাজ করে - প্রথম প্রোগ্রামটিকে ব্রায়ান এবং দ্বিতীয়টিকে চক বলা হয়। কেবল ব্রায়ান পড়তে পারে এবং কেবল চকই লিখতে পারে। ব্রেনফাকের লুপগুলির পরিবর্তে আপনার ?যা অন্য প্রোগ্রামের নিয়ন্ত্রণ (এবং নির্দেশিকা নির্দেশক এবং টেপের মাথা পরিবর্তনের ভূমিকা) নিয়ন্ত্রণ করে। ব্রেইনফাকের সংযোজন হ'ল {এবং }যা প্রথম অ-শূন্য সেল (বা বাম প্রান্ত) এর জন্য টেপটি স্ক্যান করে। এছাড়াও, _নাল বাইট দ্বারা প্রতিস্থাপন করা হয়।

যদিও আমি এখনও এটি সর্বোত্তম নয় বলে মনে করি, আমি এই সমাধানটি নিয়ে বেশ খুশি। আমার প্রথম চেষ্টাটি ছিল 84 বাইট, এবং স্প 3000 (এবং তার প্রচেষ্টা থেকে কিছুটা অনুপ্রেরণা নিয়ে) নিয়ে বেশ কয়েকটি গল্ফিং সেশনের পরে, আমি এটি একবারে কয়েক বাইটে ধীরে ধীরে 44-এ নামাতে সক্ষম হয়েছি। বিশেষত উজ্জ্বল +}+কৌশলটি তার ধারণা ছিল (নীচে দেখুন)।

ব্যাখ্যা

ইনপুটটিকে চকের টেপের প্রথম কক্ষে পাঠ করা হয়, তারপরে মজাদারভাবে ব্রায়ানের টেপের শেষে অনুলিপি করা হয়, যেখানে এটি মুদ্রিত হয়। এটিকে শেষ পর্যন্ত অনুলিপি করে আমরা পূর্বের অক্ষরটি শূন্যে সেট করার ক্ষেত্রে বাইটগুলি সংরক্ষণ করতে পারি।

#শুধু একটি স্থানধারক কারণ নিয়ন্ত্রণ সেল চালানো না সুইচিং আমরা চালু হয়। {<{টেপ মাথা চকের প্রথম কক্ষে রয়েছে তা নিশ্চিত করে। ,STDIN বা একটি বাইট পড়ে -1যদি আমরা ইওএফ হিট করি। সুতরাং আমরা এটি বৃদ্ধি করে +ইওএফের জন্য এটি শূন্য এবং অন্যথায় শূন্য নয়।

আসুন এখনই ধরে নেওয়া যাক আমরা এখনও ইওএফ এ নেই। সুতরাং ঘরটি ইতিবাচক এবং ?চকের উপর নিয়ন্ত্রণ স্যুইচ করবে। }>টেপ হেডকে (ব্রায়ানের উপরে) দিকে নিয়ে +যায় _এবং ?নিয়ন্ত্রণটি ব্রায়ানের কাছে ফিরে যায়।

{-এখন চকের প্রথম কক্ষ হ্রাস পেয়েছে। এটা এখনো শূন্য না, তাহলে আমরা নিয়ন্ত্রণ চাক আবার সঙ্গে পাস ?। এবার }>শেষ নন-শূন্য ঘরের ডানদিকে ব্রায়ানের দুটি কক্ষে টেপ মাথাটি সরিয়ে নিয়েছে। প্রথমদিকে এখানে:

#{<{,+?+}_+{-?>}<?__
                   ^

তবে পরে, আমাদের ইতিমধ্যে কিছু অক্ষর থাকবে। উদাহরণস্বরূপ, আমরা যদি ইতিমধ্যে পড়ে এবং মুদ্রিত করেছি abc, তবে এটি দেখতে এরকম হবে:

#{<{,+?+}_+{-?>}<?11a11b11c__
                            ^

যেখানে 1গুলি আসলে 1-বাইট (আমরা পরে এটি দেখতে পাব)।

এই ঘরটি সর্বদা শূন্য থাকবে, সুতরাং এবার নিয়ন্ত্রণ পরিবর্তন ? হবে না>আর একটি ঘর ডান দিকে সরানো হয় এবং +সেই ঘরের বৃদ্ধি হয়। এই কারণেই ইনপুটটির প্রথম অক্ষরটি তিনটি ঘর এর ডানদিকে শেষ হয় ?(এবং প্রতিটি পরবর্তী তিনটি কোষ আরও ডানদিকে)।

<<<সেই তালিকার শেষ অক্ষরে ফিরে যায় (বা এটি ?যদি প্রথম চরিত্রটি হয়) এবং {>লুপটির +পুনরাবৃত্তি করতে ব্রায়ানের টেপটিতে ফিরে যায় যা ধীরে ধীরে ব্রায়ানের টেপের শেষের দিকে ইনপুট সেল স্থানান্তর করে।

একবার ইনপুট সেলটি খালি হয়ে ?গেলে আর {-কোনও নিয়ন্ত্রণ স্যুইচ করবে না। তারপরে >}<চকের উপর টেপ মাথাটি সরিয়ে নিয়ে যায় _এবং এমন নিয়ন্ত্রণ করে যা চকের দ্বিতীয়ার্ধের পরিবর্তে কার্যকর হয়।

}>>আমরা এখন ব্রায়নের টেপের শেষে যা লিখেছিলাম সে ঘরে চলে যায়, যা আমরা STDIN থেকে পড়েছি বাইট, তাই আমরা এটি দিয়ে আবার মুদ্রণ করি .}টেপটিতে এই নতুন চরিত্রটি অতিক্রম করার জন্য আমাদের দুটি নাল বাইটের ফাঁক বন্ধ করতে হবে, সুতরাং আমরা তাদের 1সাথে বাড়িয়ে তুলি <+<+(সুতরাং চূড়ান্ত টেপের প্রকৃত চরিত্রগুলির মধ্যে 1-বাইট রয়েছে)। অবশেষে {<{ব্রায়ানের টেপের শুরুতে ফিরে যায় এবং ?শুরু থেকেই সবকিছু শুরু করে।

আপনি হয়ত ভাবতে পারেন যে আমরা যদি পড়ি এমন চরিত্রটি নাল-বাইট হয় তবে কি হয়? সেক্ষেত্রে নতুন লিখিত কক্ষটি নিজেই শূন্য হবে, তবে এটি ব্রায়ানের টেপের শেষে রয়েছে এবং সেই প্রান্তটি কোথায় রয়েছে সে বিষয়ে আমাদের যত্ন নেই, আমরা কেবল এটিকে উপেক্ষা করতে পারি। এর অর্থ যদি ইনপুটটি থাকে ab\0deতবে ব্রায়ানের টেপটি আসলে দেখতে দেখতে শেষ হবে:

#{<{,+?+}_+{-?>}<?11a11b1111d11e

অবশেষে, আমরা একবার ইওএফ- ?তে আঘাত করলে প্রথমে ব্রায়ানের টেপটি কোনও অপ-অফ হবে। এই মুহুর্তে আমরা প্রোগ্রামটি শেষ করি। সাদাসিধা সমাধান চাক এর টেপ এবং সুইচ নিয়ন্ত্রণের অন্তে চলাচল, এই ধরনের যে প্রোগ্রাম termiantes হবে: >}>}<?। এখানেই এসপি 3000 এর চতুর ধারণাটি তিনটি বাইট সংরক্ষণ করে:

+চকের প্রথম কক্ষে পরিণত হয় 1। এর অর্থ }একটি প্রারম্ভিক বিন্দু রয়েছে এবং এটি _চকের টেপের মাঝখানে খুঁজে পায় । এটি ছাড়ার পরিবর্তে, আমরা কেবল ফাঁকটিকে এটির 1সাথে পরিণত করে কেবল বন্ধ করি +। এখন আসুন দেখুন ব্রায়ানের বাকী কোডগুলি এই পরিবর্তিত চকের সাথে কী ঘটবে ...

{যথারীতি চকের প্রথম কক্ষে ফিরে যায় এবং -এটিকে আবার নাল-বাইটে পরিণত করে। তার মানে এটি ?কোনও অপশন নয়। তবে এখন >}<, যা সাধারণত টেপের মাথাটি চকের টেপের মাঝখানে সরিয়ে নিয়ে ?যায়, এটি একেবারে চকের টেপের শেষের দিকে চলে যায় এবং তারপরে কোডটি সমাপ্ত করে চকের নিয়ন্ত্রণে চলে যায়। যখন জিনিসগুলি ঠিক কাজ করে ... তখন এটি দুর্দান্ত :)


25

হাস্কেল, 16 বাইট

main=interact id

interactইনপুট পড়ে, এটিটিকে তার আর্গুমেন্ট হিসাবে দেওয়া ফাংশনে পাস করে এবং ফলাফলটি প্রিন্ট করে। idএটি পরিচয় ফাংশন, অর্থাৎ এটি তার ইনপুটটি অপরিবর্তিত রেখে দেয়। হাস্কেলের অলসতার জন্য ধন্যবাদ interactঅসীম ইনপুট দিয়ে কাজ করতে পারে।


23

sh + binutils, 3 2 বাইট

dd

ঠিক আছে, বেশ হিসাবে সুস্পষ্ট না। @ র্যান্ডম 832 থেকে

মূল:

cat

বেদনাদায়ক স্পষ্ট ...: ডি


12
আমি এক ভালো করতে হবে: dd
র্যান্ডম 832

আমি বিড়াল করতে যাচ্ছিলাম ... D:
ev3commander

1
হ্যাঁ, এটি দুর্দান্ত এবং সমস্ত ... তবে টাইপিংয়ের জন্য 170 প্রতিনিধি cat???
এমডি এক্সএফ

1
@ এমডিএক্সএফ সেগফাল্ট থেকে কতটা প্রতিনিধিত্ব করবেন কে জানে? ;)
কেয়ার্ড কোইনারিংহিংহ

23

ফানসিটন , 16 বাইট

╔═╗
╚╤╝

(একটি বিওএম সহ ইউটিএফ -16 হিসাবে এনকোড করা হয়েছে)

ব্যাখ্যা

বাক্সটি STDIN এর সামগ্রীগুলি প্রদান করে returns আলগা শেষ এটি আউটপুট।


19

মটোরোলা এমসি 14500 বি মেশিন কোড , 1.5 বাইট

হেক্সাডেসিমালে লিখিত:

18F

বাইনারি লিখিত:

0001 1000 1111

ব্যাখ্যা

1   Read from I/O pin
8   Output to I/O pin
F   Loop back to start

অপকডগুলি প্রতিটি 4 টি বিট।


1
-1 কোনও স্ক্রিনশট নেই, উদাহরণস্বরূপ বা এটি চেষ্টা করুন অনলাইন লিঙ্ক: পি (জে কে)
এমডি এক্সএফ

2
+1 টি। এটিকে আরও অনুকূল করার জন্য আমি যে উপায়টি ভাবতে পারি তা হ'ল কেবলমাত্র আউটপুট পিনে ইনপুট পিনটি সোল্ডার করা এবং তার সকেটটি থেকে চিপটি নেওয়া: P
Wossname

16

মর্নিংটন ক্রিসেন্ট , ৪১ বাইট

Take Northern Line to Mornington Crescent

মর্নিংটন ক্রিসেন্ট নাল বাইটগুলি পরিচালনা করতে পারে কিনা তা আমার কোনও ধারণা নেই এবং প্রোগ্রামটি শুরু হওয়ার আগে সমস্ত ইনপুট পড়ে নেওয়া হয়, কারণ এটি ভাষার প্রকৃতি।


15

ব্রেইনফাক, 5 বাইট

,[.,]

সিউডোকোডের সমান:

x = getchar()
while x != EOF:
    putchar(x)
    x = getchar()

এটি অসীম স্ট্রিমগুলি পরিচালনা করে তবে নফ বাইটগুলিকে EOF হিসাবে বিবেচনা করে। থাকুক বা না থাকুক বি এফ পারেন নাল বাইট হ্যান্ডেল সঠিকভাবে বাস্তবায়নে বাস্তবায়ন থেকে পরিবর্তিত হয়, কিন্তু এই সবচেয়ে সাধারণ পদ্ধতির অনুমান।


1
অভিশাপ! আপনি আমাকে 5 মিনিট দ্বারা এটি মারধর!
kirbyfan64sos

প্রথম অক্ষরটি যদি নুল হয় তবে এটি সঠিকভাবে চলবে না। তাহলে ঠিক হওয়া উচিত +[,.]?
শেলভাকু

6
@ শেল এটি 0x00 কে ইওএফ বাইট হিসাবে ব্যবহার করছে। যদি প্রথম চরিত্রটি ইওএফ হয়, তবে এটি প্রত্যাশিতভাবে কাজ করে কিছু প্রিন্ট করে না।
ঐ মেগো

2
"সিউডোকোড" ওহ আসুন এটি স্পষ্টভাবে কেবল অ-বন্ধনীভুক্ত, আন-সেমিকোলন-এড সি: পি
এমডি এক্সএফ

14

ভোল্টেজ , 2 বাইট

,.

যদি স্ট্রিম সীমাবদ্ধ থাকে তবে এটি একটি ত্রুটি দিয়ে শেষ হবে, তবে ত্রুটি দ্বারা উত্পাদিত সমস্ত আউটপুট STDERR এ যায়, সুতরাং মানক আউটপুট স্ট্রিমটি সঠিক।

ব্রেইনফাকের মতো ,একটি বাইট পড়ে (এটি ল্যাবরেথের মূল স্ট্যাকের দিকে ঠেলা) এবং .একটি বাইট লেখেন (এটি ল্যাবরেথের প্রধান স্ট্যাক থেকে পপিং করে)।

এই লুপগুলির কারণ হ'ল উভয়টি ,এবং .উত্স কোড দ্বারা উপস্থাপিত (খুব তুচ্ছ) গোলকধাঁধার "মৃত প্রান্ত", যেমন নির্দেশিকা পয়েন্টারটি কেবল স্পটটিতে ঘুরিয়ে দেয় এবং অন্য কমান্ডে ফিরে যায়।

আমরা এর পরিবর্তে ইওএফ ,চাপলে -1এবং .একটি ত্রুটি ছুড়ে দেয় কারণ -1একটি বৈধ অক্ষর কোড নয়। ভবিষ্যতে এটি আসলে পরিবর্তিত হতে পারে তবে আমি এখনও এটি নিয়ে সিদ্ধান্ত নিই নি।


সহায়তার জন্য, আমরা এটিকে ত্রুটি ছাড়া সমাধান করতে পারে 6 বাইট নিম্নরূপ

,)@
.(

এখানে, )আমরা যে বাইটটি পড়ি বর্ধিত হয়, যা 0ইওএফ এ দেয় এবং অন্যথায় ইতিবাচক কিছু দেয় । মানটি যদি হয় 0তবে আইপিটি সোজা চলে আসে, @যা প্রোগ্রামটি বন্ধ করে দেয় hit মানটি যদি ইতিবাচক হয় তবে আইপি পরিবর্তে ডানদিকে ঘুরিয়ে নেবে (যা স্ট্যাকের শীর্ষটিকে মূল মূল্যে ফিরিয়ে দেয়। আইপি এখন এক কোণে রয়েছে এবং এটি একবারে কাঁটাচামচায় আঘাত হানার আগে ডানদিকে ঘুরিয়ে দিয়ে, মুদ্রণ করে ., নতুন বাইটটি সহ পড়তে থাকবে ।.)


13

সি, 40 বাইট

main(i){while(i=~getchar())putchar(~i);}

main () {while (255-putchar (getchar ())); a কয়েক বাইট সংক্ষিপ্ততর।
অ্যালকিমিস্ট

1
দুঃখের বিষয়, এটি 0xFF বাইটে অকাল থেকে প্রস্থান করে এবং ইনপুটটিতে 0xFF বাইট যুক্ত করে যদি এতে না থাকে।
ডেনিস

নিম্নলিখিতগুলি সম্পর্কে কী, 36 বাইট: মূল () {for (;; পুটচর (গেটচার ()));};
জোহান ডু টোইট

@ user2943932 যখন, ফাইলের শেষে হিট getcharফেরৎ -1 , তাই আপনার কোড (সসীম) ইনপুট পর 0xFF বাইট অসীম প্রবাহ প্রিন্ট করবে।
ডেনিস

12

> <> , 7 বাইট

i:0(?;o

এখানে চেষ্টা করুন । ব্যাখ্যা:

i:0(?;o
i        Take a character from input, pushing -1 if the input is empty
 :0(     Check if the input is less than 0, pushing 1 if true, 0 if false
    ?;   Pop a value of the top of the stack, ending the program if the value is non-zero
      o  Otherwise, output then loop around to the left and repeat

যদি আপনি এটি আরও ইনপুট না দেওয়া পর্যন্ত চালিয়ে যেতে চান তবে এর ;সাথে প্রতিস্থাপন করুন !


ওহ মানুষ, আমি << উত্তর পোস্ট করার প্রত্যাশা করছিলাম ...: পি (+1!)
এল'েন্ডিয়া স্টারম্যান

1
io(2 বাইট) একই কাজ করে, তবে ক্রাশ something smells fishy...হয়ে মৃত্যুদন্ডের শেষে এসটিডিআরআরকে লিখে দেয়, যা অনুমোদিত।
লিন

@ মরিস অনলাইন দোভাষী কেবল একটি ত্রুটি শেষ না করে শূন্য বাইটগুলি আউটপুট করে।
ড্যানTheম্যান

11

এক্স 86 সমাবেশ, 70 বাইট

এর সাথে বিচ্ছিন্ন objdump:

00000000 <.data>:
   0:   66 83 ec 01             sub    sp,0x1
   4:   66 b8 03 00             mov    ax,0x3
   8:   00 00                   add    BYTE PTR [eax],al
   a:   66 31 db                xor    bx,bx
   d:   66 67 8d 4c 24          lea    cx,[si+0x24]
  12:   ff 66 ba                jmp    DWORD PTR [esi-0x46]
  15:   01 00                   add    DWORD PTR [eax],eax
  17:   00 00                   add    BYTE PTR [eax],al
  19:   cd 80                   int    0x80
  1b:   66 48                   dec    ax
  1d:   78 1c                   js     0x3b
  1f:   66 b8 04 00             mov    ax,0x4
  23:   00 00                   add    BYTE PTR [eax],al
  25:   66 bb 01 00             mov    bx,0x1
  29:   00 00                   add    BYTE PTR [eax],al
  2b:   66 67 8d 4c 24          lea    cx,[si+0x24]
  30:   ff 66 ba                jmp    DWORD PTR [esi-0x46]
  33:   01 00                   add    DWORD PTR [eax],eax
  35:   00 00                   add    BYTE PTR [eax],al
  37:   cd 80                   int    0x80
  39:   eb c9                   jmp    0x4
  3b:   66 b8 01 00             mov    ax,0x1
  3f:   00 00                   add    BYTE PTR [eax],al
  41:   66 31 db                xor    bx,bx
  44:   cd 80                   int    0x80

উৎস:

sub esp, 1
t:
mov eax,3
xor ebx,ebx
lea ecx,[esp-1]
mov edx,1
int 0x80
dec eax
js e
mov eax,4
mov ebx,1
lea ecx,[esp-1]
mov edx,1
int 0x80
jmp t
e:
mov eax,1
xor ebx,ebx
int 0x80

1
সুতরাং, আপনি objdumpএটি 32-বিট কোড হিসাবে বিচ্ছিন্ন করেছেন, যখন আপনি 16-বিট হিসাবে সংকলন করেছেন বলে মনে হচ্ছে। কি বিশ্বাস করবেন? যেহেতু আপনি ব্যবহার করেন int 0x80, আমি অনুমান করি এটি লিনাক্সের জন্য বোঝানো হয়েছে, তবে কেন তখন 16-বিট হিসাবে সংকলন করা হবে?
রুসলান

@ রাস্লান আমি বুঝতেও পারি নি যে এটি 16-বিটে সংকলিত হয়েছে ...
kirbyfan64sos

11

ইউনিভার্সাল লাম্বদা , 1 বাইট

!

ইউনিভার্সাল লাম্বদা প্রোগ্রামটি বাইনারিতে ল্যাম্বডা টার্মের একটি এনকোডিং, 8 টি বিটের অংশে কাটা, কোনও বিট দিয়ে অসম্পূর্ণ খণ্ডগুলিকে প্যাড করে বাইট স্ট্রিমে রূপান্তরিত করে।

বিটগুলি নীচে ল্যাম্বডা টার্মে অনুবাদ করা হয়েছে:

  • 00 একটি ল্যাম্বদা বিমূর্ততা প্রবর্তন।
  • 01 দুটি পরবর্তী শর্তাদির প্রয়োগকে উপস্থাপন করে।
  • 111..10বিটের n পুনরাবৃত্তির সাথে 1, n ম প্যারেন্ট ল্যাম্বদা এর চলক বোঝায় ; অর্থাত্ এটি অ্যানারিতে ডি ব্রুইজন সূচক

এই রূপান্তর দ্বারা, 0010পরিচয় ফাংশন λa.a, যার অর্থ ফর্মের কোনও একক-বাইট প্রোগ্রাম 0010xxxxএকটি catপ্রোগ্রাম।


1
কিন্তু !হয় 0x21না 0x4_?
wchargin

সংশোধন করা হয়েছে। --------
লিন

10

পাওয়ারশেল, 88 41 30 বাইট

$input;write-host(read-host)-n

সম্পাদনা - ভুলে গেছি যে আমি $inputপাইপলাইন ইনপুট জন্য স্বয়ংক্রিয় চলকটি ব্যবহার করতে পারি ... EDIT2 - এর অস্তিত্বের জন্য পরীক্ষা করার দরকার নেই$input

হ্যাঁ, তাই ... পাওয়ারশেলের এসটিডিএন ... অদ্ভুত, আমরা কি বলব। এই ধারণাটি নিয়ে যে আমাদের সকল প্রকারের STDIN থেকে ইনপুট গ্রহণ করতে হবে , এই ক্যাটালগটির এটি একটি সম্ভাব্য উত্তর এবং আমি নিশ্চিত যে আরও কিছু আছে। 1

পাওয়ারশেলের পাইপলাইন ইনপুট যদিও আপনি ভাবেন ঠিক তেমন কাজ করে না। যেহেতু PowerShell মধ্যে বংশীধ্বনিতুল্য ভাষা একটি ফাংশন, এবং পরিবেশ / শেল একটি ফাংশন (এবং PowerShell সত্যিই নয় কেবলমাত্র যাহাই হউক না কেন একটি ভাষা), সেখানে আচরণে কিছু quirks হয়।

প্রারম্ভিকদের এবং এই এন্ট্রির সাথে সর্বাধিক প্রাসঙ্গিকদের জন্য পাইপটি তাত্ক্ষণিকভাবে মূল্যায়ন করা হয় না (বেশিরভাগ সময়)। অর্থ, যদি command1 | command2 | command3আমাদের শেলটিতে থাকে তবে সম্পূর্ণ নাcommand2 হওয়া পর্যন্ত ইনপুট নেবে না বা প্রক্রিয়াজাতকরণ শুরু করবে না command1... যতক্ষণ না আপনি নিজেরটিকে command1একটি ForEach-Object... দিয়ে আলাদা করে রাখেন যা এর চেয়ে আলাদাForEach(যদিও ForEachএটির জন্য একটি উপনাম ForEach-Object, তবে এটি একটি পৃথক বিষয়, যেহেতু আমি ForEachউক্তি হিসাবে নয়, বিবৃতি হিসাবে কথা বলছি )

এর অর্থ হ'ল এমন কিছু yes | .\simple-cat-program.ps1(যদিও yesসত্যই বিদ্যমান নেই, তবে যা কিছু) কাজ করবে না কারণ yesকখনই সম্পূর্ণ হবে না। যদি আমরা এটি করতে পারি ForEach-Object -InputObject(yes) | .\simple-cat-program.ps1(তত্ত্বীয়ভাবে) কাজ করা উচিত।

মাইক্রোসফ্টে ফরএচ এবং ফোরএচ-অবজেক্ট সম্পর্কে জানতে "হেই, স্ক্রিপ্টিং গাই!" ব্লগ।

সুতরাং, এই সমস্ত অনুচ্ছেদ কেন তা if($input){$input}বিদ্যমান তা ব্যাখ্যা করছে । আমরা পাইপলাইন ইনপুট উপস্থিত থাকলে বিশেষভাবে স্বয়ংক্রিয়ভাবে তৈরি হওয়া একটি ইনপুট প্যারামিটার নিই, এটি উপস্থিত রয়েছে কিনা তা পরীক্ষা করুন এবং যদি তাই হয় তবে আউটপুট করুন।

তারপরে, আমরা (read-host)মূলত পৃথক STDIN প্রবাহটি কীসের মাধ্যমে ব্যবহারকারীর কাছ থেকে ইনপুট নিই এবং পতাকাটি (সংক্ষেপে ) write-hostসহ এটি ফিরিয়ে আনে । নোট করুন যে এটি স্বেচ্ছাসেবী দৈর্ঘ্যের ইনপুটটিকে সমর্থন করে না, কেবল যখন লাইনফিডটি প্রবেশ করা হবে তখনই সম্পূর্ণ হবে (প্রযুক্তিগতভাবে যখন ব্যবহারকারী "এন্টার" চাপুন তবে কার্যকরীভাবে সমতুল্য)।-n-NoNewLineread-host

ইসস।

1 তবে অন্যান্য বিকল্প রয়েছে:

উদাহরণস্বরূপ, আমরা যদি কেবল পাইপলাইন ইনপুট নিয়েই উদ্বিগ্ন ছিলাম এবং আমাদের একটি সম্পূর্ণ প্রোগ্রামের প্রয়োজন না ছিল, আপনি এমন কিছু করতে পারেন | $_যা কেবলমাত্র ইনপুটই দেয় output (সাধারণভাবে, এটি কিছুটা অপ্রয়োজনীয়, যেহেতু পাওয়ারশেলের হাতে গণনার পরে "পিছনে ফেলে রাখা" জিনিসগুলির অন্তর্নির্মিত আউটপুট থাকে, তবে এটি একটি দিক থেকে আলাদা))

আমরা যদি কেবল ইন্টারেক্টিভ ব্যবহারকারী ইনপুট নিয়ে উদ্বিগ্ন হন তবে আমরা কেবল ব্যবহার করতে পারি write-host(read-host)-n

অতিরিক্তভাবে, এই ফাংশনটিতে কমান্ড-লাইন ইনপুট গ্রহণের তাত্ক্ষণিক বৈশিষ্ট্য রয়েছে, উদাহরণস্বরূপ চলকটি .\simple-cat-program.ps1 "test"(এবং তারপরে আউটপুট) $aপপুলেশন করবে।


আপনার উপনামে নির্মিত ভুলবেন না!
চাদ

10

কিউবিক্স , 6 5 বাইট

এখন নাল বাইট পরিচালনা!

@_i?o

কিউবিক্স একটি 2-মাত্রিক, স্ট্যাক-ভিত্তিক ইসলং। কিউবিক্স অন্যান্য 2 ডি ল্যাং থেকে পৃথক যে উত্স কোডটি একটি ঘনক্ষেত্রের বাইরের অংশে আবৃত থাকে।

এটি অনলাইন পরীক্ষা! দ্রষ্টব্য: পুনরাবৃত্তির মধ্যে একটি 50 এমএস বিলম্ব রয়েছে।

ব্যাখ্যা

দোভাষী যে কাজটি প্রথম করেন তা হ'ল কোডটি যে ক্ষুদ্রতম ঘনক্ষেত্রটি ফিট করবে তা নির্ধারণ করা। এই ক্ষেত্রে, প্রান্ত দৈর্ঘ্য 1। তারপরে .সমস্ত ছয় পক্ষ পূরণ না হওয়া পর্যন্ত কোডটি কোনও অপস দিয়ে প্যাড করা হবে। প্রসেসিংয়ের আগে হোয়াইটস্পেস সরানো হয়েছে, সুতরাং এই কোডটি উপরের মতই:

  @
_ i ? o
  .

এখন কোড চালানো হয়। আইপি (নির্দেশ পয়েন্টার) পূর্ব দিকে নির্দেশ করে সুদূর বাম মুখ থেকে শুরু হয়।

প্রথম চরটি আইপি-র মুখোমুখি হয় _, এটি একটি আয়না যা আইপি ঘুরিয়ে দেয় যদি এটি উত্তর বা দক্ষিণের দিকে মুখ করে থাকে; এটি বর্তমানে পূর্বে মুখোমুখি, সুতরাং এটি কিছুই করে না। এরপরে i, যা এসটিডিন থেকে একটি বাইট ইনপুট করে। ?শীর্ষস্থানীয় আইটেমটি নেতিবাচক হলে আইপি বামে পরিণত হয় বা ইতিবাচক হলে ডানদিকে যায়। এখানে তিনটি সম্ভাব্য পথ রয়েছে:

  • যদি ইনপুটযুক্ত বাইট -1 (ইওএফ) হয়, আইপি বাম দিকে ঘুরিয়ে দেয় এবং হিট হয় @যা প্রোগ্রামটি বন্ধ করে দেয়।
  • যদি ইনপুটযুক্ত বাইট 0 হয় (নাল বাইট), আইপিটি সোজা চালিয়ে যায়, বাইট আউটপুট দিয়ে o
  • অন্যথায়, আইপি ডান দিকে ঘুরছে, নীচের মুখটি জুড়ে ভ্রমণ করে এবং আয়নাটি আঘাত করে _। এটি এটিকে ঘুরিয়ে দেয়, এটিকে আবার পাঠিয়ে দেয় ?যা এটি আবার ডানদিকে ঘুরিয়ে দেয় এবং বাইট আউটপুট করে।

আমি মনে করি এই প্রোগ্রামটি সর্বোত্তম। কিউবিক্স নাল বাইটগুলি পরিচালনা করতে পারে (EOF ছিল 0, -1 নয়), এই প্রোগ্রামটি নাল বাইট ব্যতীত সমস্ত কিছুর জন্য কাজ করেছিল:

.i!@o

আমি 5 টি বাইট বিড়ালের সমস্ত প্রোগ্রাম সন্ধানের জন্য একটি ব্রুট-ফোরজার লিখেছি । যদিও এটি শেষ করতে ~ 5 মিনিট সময় নেয়, সর্বশেষ সংস্করণে 5 টি প্রোগ্রাম পাওয়া গেছে:

@_i?o   (works as expected)
@i?o_   (works in exactly the same way as the above)
iW?@o   (works as expected)
?i^o@   (false positive; prints U+FFFF forever on empty input)
?iWo@   (works as expected)

একবারে এক ডজন পোস্ট সম্পাদনা করবেন না। আপনি প্রথম পৃষ্ঠায় প্লাবন করছেন। 3 একবারে সমস্যা হয় না, তবে আপনাকে যদি এর চেয়ে আরও বেশি কিছু করতে হয় তবে দয়া করে প্রতি 12 ঘন্টা বা তার পরে ছোট ছোট ব্যাচে আপনার সম্পাদনাগুলি করুন।
মার্টিন ইন্ডার

@ মার্টিনএন্ডার দুঃখিত, আমি ঠিক এটি লক্ষ্য করেছি। ভবিষ্যতে আমি তাদের স্থান করে দেব।
ETH প্রোডাকশনস

9

ভিটসি, 2 বাইট

ZZ

zসমস্ত ইনপুট স্ট্যাক পায় এবং এটি সক্রিয় প্রোগ্রাম স্ট্যাকের দিকে ঠেলে দেয়। Zসমস্ত সক্রিয় স্ট্যাকটি STDOUT এ মুদ্রণ করে।

বিকল্প পদ্ধতি:

আমি \ মাস \ হে
আই input ইনপুট স্ট্যাকের দৈর্ঘ্যের জন্য পরবর্তী অক্ষরটি পুনরাবৃত্তি করুন।
  আমি ইনপুট থেকে একটি আইটেম ধরুন।
   l currently বর্তমানে সক্রিয় প্রোগ্রাম স্ট্যাকের দৈর্ঘ্যের জন্য পরবর্তী অক্ষরটি পুনরাবৃত্তি করুন।
     হে স্ট্যাকের শীর্ষস্থানীয় আইটেমটিকে একটি অক্ষর হিসাবে আউটপুট করুন।

2
^ _ Any যাইহোক +1 করুন! :)
এল'েন্ডিয়া স্টারম্যান

করুণ ভোট, আমার প্রিয়!
অ্যাডিসন ক্রম্প

ডাউনভোটস কেন? এটি একটি নিখুঁত বৈধ এন্ট্রি বলে মনে হচ্ছে
কনার ও'ব্রায়ান

1
এটা তোলে হয় সব চশমা দ্বারা বৈধ।
অ্যাডিসন ক্রম্প

9

মারিওল্যাং , 11 বাইট

,<
."
>!
=#

আমি এটি নিশ্চিত যে পুরোপুরি নিশ্চিত নই, তবে এটি আমার কাছে সবচেয়ে সংক্ষিপ্ততম।

এটি অসীম স্ট্রিমগুলিকে সমর্থন করে এবং ইওএফ পৌঁছানোর পরে একটি ত্রুটি সহ শেষ হবে (কমপক্ষে রুবি রেফারেন্স বাস্তবায়ন করে)।

এর আরও একটি সংস্করণ রয়েছে যা মারিওকে নিনজাতে পরিণত করে যিনি দ্বিগুণ লাফাতে পারেন:

,<
.^
>^
==

উভয় ক্ষেত্রেই, মারিও বাম কলামে নীচে পড়তে শুরু করে, যেখানে ,একটি বাইট পড়ে এবং .একটি বাইট লেখায় (যা ইওএফ এ একটি ত্রুটি ছুড়ে দেয় কারণ ,একটি বৈধ অক্ষর ফেরায় না)। >নিশ্চিত করে যে মারিও ডানদিকে হাঁটবে ( =তাঁর চলার জন্য কেবল একটি ক্ষেত্র)। তারপরে বাম কলামে ফিরে যেতে বলার আগে তিনি ডাবল লাফ দিয়ে ^বা একটি লিফট (এবং "এবং #জুড়ি) দিয়ে <এগিয়ে যান।


8

আরএস , 0 বাইট


সিরিয়াসলি। প্রদত্ত স্ক্রিপ্টটি পুরো খালি থাকলে আরএস যা কিছু পায় তা কেবল মুদ্রণ করে।


7

গল্ফস্ক্রিপ্ট, 3 বাইট

:n;

খালি প্রোগ্রামটি স্ট্যান্ডার্ড ইনপুট প্রতিধ্বনিত করে। ভাষা সম্ভবত অসীম স্ট্রিম পরিচালনা করতে পারে না। যাইহোক, এটি ডেনিসের উল্লেখ অনুসারে এটি একটি নতুন লাইন যুক্ত করেছে। এটি অ্যারের মধ্যে পুরো স্ট্যাকটি মোড়ানো এবং কল করার মাধ্যমে এটি করে puts, যা সংজ্ঞায়িত হয় print n print, nএকটি নতুন লাইন কোথায় । যাইহোক, আমরা nSTDIN হিসাবে পুনরায় সংজ্ঞা দিতে পারি, এবং তারপরে স্ট্যাকটি খালি করতে পারি যা অবিকল কি :n;করে।


7

ভারী ট্র্যাফিকের অর্ধ-ভাঙা গাড়ি , 9 + 3 = 12 বাইট

#<
o^<
 v

ভারী ট্র্যাফিকের অর্ধ-ব্রোকন গাড়ি (এইচবিসিটিটি) কমান্ড লাইন আরোগুলি হিসাবে ইনপুট নেয়, তাই চালানো run

py -3 hbcht cat.hbc -s "candy corn"

নোট করুন যে +3 -sপতাকাটির জন্য, যা চর হিসাবে প্রকাশিত হয় uts এছাড়াও, এইচবিসিএইচটি NUL গুলি হ্যান্ডেল করে বলে মনে হচ্ছে না, কারণ সমস্ত জিরো আউটপুট থেকে বাদ পড়ে (যেমন 97 0 98আউটপুটটি দুটি অক্ষর হিসাবে আউটপুট হয় ab)।

ব্যাখ্যা

HBCHT ক্ষেত্রে, আপনার গাড়ী আরম্ভ করা হয় oএবং আপনার লক্ষ্য প্রস্থান হয় #^>v<গাড়ী আন্দোলন সরাসরি, যখন একযোগে একটি bf মত টেপ (পরিবর্তন ^>v<অনুবাদ +>-<)। যাইহোক, ভাষার নাম অনুসারে, আপনার গাড়ী কেবল ডানদিকে ঘুরিয়ে দিতে পারে - বাম দিকে ঘুরানোর কোনও প্রচেষ্টা সম্পূর্ণ উপেক্ষা করা হবে (তাদের স্মৃতি প্রভাব সহ)। মনে রাখবেন এটি কেবল বাঁক দেওয়ার জন্য - আপনার গাড়ি এগিয়ে যাওয়ার / বিপরীত দিক চালানোর পক্ষে পুরোপুরি সক্ষম।

এইচবিসিএইচটি সম্পর্কে অন্যান্য আকর্ষণীয় অংশগুলি হ'ল আপনার গাড়ির প্রাথমিক দিকটি এলোমেলোভাবে তৈরি করা হয়েছে এবং গ্রিডটি টোরয়েডাল। এইভাবে চারটি প্রাথমিক দিকের টেপটি পরিবর্তন না করেই কেবল প্রস্থান করার জন্য আমাদের গাড়িটি দরকার:

  • উপরে এবং নীচে সোজা হয়ে প্রস্থানটিতে সরাসরি যাচ্ছেন।

  • বাম জন্য, আমরা মোড়ানো এবং চালানো <এবং এর সাথে বৃদ্ধি ^। আমরা পরের দিকে বাম দিকে ঘুরতে পারি না <তাই আমরা vআগের বার্ষিক বৃদ্ধির বিষয়টি উপেক্ষা করে মোড়ানো এবং হ্রাস করতে পারি । যেহেতু আমরা এখন নীচের দিকে যাচ্ছি এখনই আমরা ডানদিকে ঘুরতে <এবং প্রস্থান করতে পারি, পয়েন্টারটি দু'বার সরিয়ে রেখে এবং কোনও সেল মান পরিবর্তন না করে।

  • ডানদিকে, আমরা বাম হিসাবে একই জিনিস করি তবে ^আমরা বাম দিকে ঘুরতে পারি না বলে প্রথমটি এড়িয়ে চলে ip


সম্পাদনা : দেখা যাচ্ছে যে এইচবিসিটিটি ইন্টারপ্রেটার আপনাকে কমান্ড লাইন পতাকা দ্বারা কেবল একটি একক পথ সম্পাদন করতে দেয়

py -3 hbcht -d left cat.hbc

তবে, এই নির্দিষ্ট প্রশ্নের জন্য পতাকাটি খুব ব্যয়বহুল নয় (কমপক্ষে 5 বাইটের জন্য " -d u"), মনে হচ্ছে কোডটি কার্যকর করার জন্য সমস্ত পাথ এখনও এটিকে প্রস্থান করতে সক্ষম হতে হবে।


7

মিনকোলাং , 5 বাইট

od?.O

এখানে চেষ্টা করুন।

ব্যাখ্যা

oইনপুট থেকে একটি অক্ষর পড়ে এবং তার ASCII কোডটি স্ট্যাকের দিকে ঠেলে দেয় ( 0যদি ইনপুটটি খালি থাকে)। dতারপরে স্ট্যাকের শীর্ষের প্রতিলিপি তৈরি করুন (যে অক্ষরটি সবেমাত্র পড়েছিল)। ?এটি একটি শর্তসাপেক্ষ ট্রাম্পোলিন, যা স্ট্যাকের শীর্ষের পরবর্তী নির্দেশনাটি লাফ দেয় 0। যদি ইনপুটটি খালি থাকে, তবে .লাফ দেওয়া হয় না এবং প্রোগ্রামটি বন্ধ হয়ে যায়। অন্যথায়, Oএকটি চরিত্র হিসাবে স্ট্যাকের শীর্ষ আউটপুট দেয়। মিনকোল্যাংয়ের টরওয়েডাল প্রকৃতির অর্থ এই যে প্রায় শুরুতে চলে।


2
Grar! তুমি আমার ভাষা মারো! অগ্রহণযোগ্য! +1
অ্যাডিসন ক্রম্প

7

ইন্টারকল , 133 বাইট

ওয়াত

INTERCALL IS A ANTIGOLFING LANGUAGE
SO THIS HEADER IS HERE TO PREVENT GOLFING IN INTERCALL
THE PROGRAM STARTS HERE:
READ
PRINT
GOTO I

দেখে মনে হচ্ছে কেউ সত্যই খাঁটি বিরোধী-গল্ফিং ভাষায় গল্ফ করেছে ... 133-116 = 17
এরিক দ্য আউটগোল্ফার

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ যেহেতু বিড়াল প্রোগ্রামটি খুব সহজ, এটি সমস্ত প্রোগ্রামের ক্ষেত্রে এটি নয় ... কোডগলফ.স্ট্যাকেক্সেঞ্জার
/

যে ব্যক্তি ভাষাটি তৈরি করেছিল সে রোমান সংখ্যার ব্যবহারের উদ্দেশ্যে, তবে এটি যদি মুদ্রণ 500(নিশ্চিত না) হয় তবে তা PRINT Dঠিক তাই না? (শিরোনাম বাদ দিয়ে)
এরিক দি আউটগলফার

@ EʀɪᴋᴛʜᴇGᴏʟғᴇʀ Nope, INTERCALL কেবল ASCII অক্ষরগুলি মুদ্রণ করতে পারে এবং একটি স্ট্যাক ব্যবহার করতে পারে, উদাহরণস্বরূপ, ascii মান 20 সহ কার্যাক্টর মুদ্রণের জন্য কোডটি হয় PUSH XX<newline>PRINTবা PUSH XX AND PRINT। ওহ এবং আমি
ইন্টারকলের

7

ভি , 0 বাইট

এটি অনলাইন চেষ্টা করুন!

"মেমরি" সম্পর্কে ভি এর ধারণাটি কেবল একটি বিশাল 2D চরিত্রের অ্যারে। কোনও প্রোগ্রাম চালানোর আগে, সমস্ত ইনপুট এটি এই অ্যারেতে লোড হয় ("দ্য বাফার" নামে পরিচিত)। তারপরে, যে কোনও প্রোগ্রামের শেষে, বাফারের সমস্ত পাঠ্য মুদ্রিত হয়।

অন্য কথায়, খালি প্রোগ্রাম হয় একটি বিড়াল প্রোগ্রাম।


6

স্নোম্যান 1.0.2 , 15 অক্ষর

(:vGsP10wRsp;bD

স্নোম্যানের examplesডিরেক্টরি থেকে সরাসরি নেওয়া হয়েছে । একটি লাইন পড়ে, একটি লাইন প্রিন্ট করে, একটি লাইন পড়ে, একটি লাইন প্রিন্ট করে ...

মনে রাখবেন যে বাস্তবায়নের বিশদের কারণে, যখন STDIN খালি থাকে, vgখালি লাইনের মতো একই জিনিস ফিরিয়ে দেবে। অতএব, এসটিডিআইএন বন্ধ হয়ে গেলে এটি অনন্ত লুপে বারবার নিউলাইনগুলি মুদ্রণ করবে। এটি ভবিষ্যতের সংস্করণে স্থির থাকতে পারে।

কোডের ব্যাখ্যা:

(        // set two variables (a and f) to active—this is all we need
:...;bD  // a "do-loop" which continues looping as long as its "return value"
         // is truthy
  vGsP   // read a line, print the line
  10wRsp // print a newline—"print" is called in nonconsuming mode; therefore,
         // that same newline will actually end up being the "return value" from
         // the do-loop, causing it to loop infinitely

5

ফায়ারটাইপ , 7 বাইট

,
&
_
=

কিছু প্রয়োজন পরিবর্তন আমি শুধু ধাক্কা । বিধিগুলি বলে:

আমাদের সাধারণ নিয়মগুলির বিপরীতে, এই চ্যালেঞ্জের চেয়ে নতুন হলেও ভাষা (বা ভাষার সংস্করণ) নির্দ্বিধায় ব্যবহার করুন।

সুতরাং আমি পরিষ্কার মধ্যে আছি!


5

বিদারণ , 4 বাইট

R?J!

আপনি যখন ভাষার নিজস্ব ভান্ডারে নমুনা প্রোগ্রামগুলিকে পরাজিত করেন তখন কি ভাল লাগে না? :) রেফারেন্সের জন্য, এটিতে 7-বাইট সমাধান রয়েছে

R?J0;0!

ব্যাখ্যা

সুতরাং, Rডানদিকে যাওয়া পরমাণু দিয়ে নিয়ন্ত্রণ-প্রবাহ শুরু করে। ?পরমাণুর ভরতে এসটিডিএন থেকে একটি চরিত্র পড়ে। যতক্ষণ আমরা অক্ষরগুলি পড়ছি ততক্ষণ শক্তি শূন্য থেকে যায়, তাই Jআম্প একটি অন-অপশন এবং !চরিত্রটি মুদ্রণ করে। পরমাণু আবার শুরুতে ফিরে আসে ( Rএখন এটি কোনও অপশন নেই) এবং পুরো প্রক্রিয়াটি পুনরাবৃত্তি করে।

যখন আমরা ইওএফ হিট ?করব তখন পরমাণুর শক্তি সেট করে দেবে 1, তাই Jআম্প এখন প্রিন্ট কমান্ডটি এড়িয়ে যাবে। ইওএফটি ইতিমধ্যে ফিরে আসার ? পরে যখন কোনও পরমাণু আঘাত হানে তখন এটি পরমাণুটিকে ধ্বংস করে দেবে, যা প্রোগ্রামটি বন্ধ করে দেয়।

(ভাষার লেখকের সমাধান ;প্রোগ্রামটি শেষ করতে একটি স্পষ্ট ব্যবহার করে, যা 0অন্যথায় দুটি- পোর্টাল বাদ দেওয়া হয় ))


5

Shtriped , 20 বাইট

e )
"
 r )
 s )
 "
"

এই কৌতুকপূর্ণভাবে দেখায় যে প্রায় কোনও মুদ্রণযোগ্য ASCII স্ট্রিং Shtriped এ একটি বৈধ সনাক্তকারী।

কিভাবে এটা কাজ করে:

e )   \ declares a variable named )
"     \ defines a function with 0 arguments named "
 r )  \ gets a line of string input, saving it to )
 s )  \ prints ) as a string
 "    \ recursively calls ", effectively looping forever
"     \ calls " from the main scope to get things started

ইওএফ সনাক্তকরণের কোনও আসল উপায় নেই, সুতরাং পাইথন উত্তরের মতো চিরকালের জন্য এটি লুপ হয় ।

(30 বাইট) যদিও খালি লাইন দেওয়া হয় আপনি সহজেই এটিকে থামিয়ে দিতে পারেন:

e )
"
 r )
 d ) \ tries to decrement ), if it was the empty string, aka 0, it can't, so 0 is returned all the way up
 i ) \ increment ) to put it back to normal after possibly decrementing
 s )
 "
"

নোট করুন যে Shtriped I / O কেবল প্রিন্টযোগ্য ASCII , ট্যাবগুলি, লাইন ফিডগুলি, ক্যারেজ রিটার্নগুলি, উল্লম্ব ট্যাবগুলি এবং ফর্ম ফিডগুলি (মোট 100 টি অক্ষর) সমর্থন করে। এটি কারণ অভ্যন্তরীণভাবে, স্ট্রিংগুলি অ-নেতিবাচক স্বেচ্ছাসেবী যথার্থ পূর্ণসংখ্যার হিসাবে উপস্থাপিত হয় এবং সমস্ত স্ট্রিংগুলিকে এনকোড করতে সক্ষম হওয়ার জন্য অক্ষরের একটি সীমাবদ্ধ বর্ণমালা থাকতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.