একটি মেটাচাইন লিখুন


19

মেটাকুইন এমন একটি প্রোগ্রাম যা কোনও কুইন নয়, তবে যার আউটপুট, যখন একই ভাষায় প্রোগ্রাম হিসাবে চালিত হয়, তখন কোয়াইন হয়।

এই চ্যালেঞ্জের লক্ষ্য হ'ল একটি মেটাওয়াইন লিখুন। এটি , তাই সংক্ষিপ্ততম কোড জিতেছে, টাইব্রেকার হিসাবে প্রাথমিক উত্তর ব্যবহার করা হয়েছে। মনে রাখবেন যে একটি পূর্ণাঙ্গ প্রোগ্রামগুলি গ্রহণযোগ্য, একটি রানির সংজ্ঞার কারণে।

কুইন্সের জন্য বিধি

শুধুমাত্র সত্য কুইন গ্রহণ করা হয়। অর্থাৎ আপনাকে সমগ্র উতস কোড, stdout- এ ধারণকৃত মুদ্রণ প্রয়োজন ছাড়া :

  • প্রত্যক্ষ বা অপ্রত্যক্ষভাবে আপনার উত্স কোডটি পড়ছেন।
  • একটি REPL পরিবেশের উপর নির্ভর করে যা কেবল আপনি খাওয়ানো প্রতিটি অভিব্যক্তি কেবল মূল্যায়ন করে এবং মুদ্রণ করে।
  • ভাষার বৈশিষ্ট্যগুলির উপর নির্ভর করে যা নির্দিষ্ট ক্ষেত্রে উত্সটি কেবল মুদ্রণ করে।
  • ত্রুটি বার্তা বা STDERR ব্যবহার করে কোয়েনের সমস্ত বা অংশ লিখতে। (আপনি STDERR এ জিনিস লিখতে পারেন বা সতর্কতা / অ-মারাত্মক ত্রুটি তৈরি করতে পারবেন যতক্ষণ না STDOUT বৈধ কুইন এবং ত্রুটি বার্তাগুলি এর অংশ না হয়))
  • উত্স কোডটি নিখুঁতভাবে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে অক্ষরে আবদ্ধ হয়ে থাকে এবং (অথবা তারা NOPs থাকে)।

কোয়েনের বৈধতার জন্য আউটপুটে কোনও দমনযোগ্য আউটপুট (যেমন কপিরাইট নোটিশস, স্টার্টআপ / শাটডাউন বার্তাগুলি, বা একটি পেছনের লাইন ফিড) উপেক্ষা করা যেতে পারে।

উদাহরণ

কেবলমাত্র আক্ষরিক প্রোগ্রাম এবং অন্তর্নির্মিত কুইনিং নিষিদ্ধ করা নিয়মটিকে উপেক্ষা করা, এটি সিরিয়াসলি একটি মেটাচাইন হবে:

"Q"

প্রোগ্রামটিতে একক স্ট্রিং আক্ষরিক থাকে "Q", যা আউটপুটে স্পষ্টভাবে মুদ্রিত হয়। যখন আউটপুট ( Q) চালানো হয়, এটি একটি কুইন ( Qঅন্তর্নির্মিত কুইন ফাংশন) হয়।


2
আক্ষরিক / মন্তব্য / এনওপি রুলগুলিও মেটাকোটের আউটপুট (অর্থাত্ আসল কুইন) এর ক্ষেত্রেও প্রযোজ্য? অন্যথায় প্রাক্তন Tএকটি সহজ 1-বাইট পাইথ উত্তর।
ডুরনবব

@ ডুরকনব হ্যাঁ, আমি পরিষ্কার করব।
মেগো

8
আমি এই চ্যালেঞ্জের কঠিন পয়েন্টটি আসলে দেখছি না। কৌশলটি কি "স্ট্রিংটি মুদ্রিত করে না যেখানে সংক্ষিপ্ত পরিচিত কুইন থাকে" প্রতিটি ভাষার জন্য জয়ের পক্ষে যথেষ্ট গ্যারান্টিযুক্ত?
জালিয়াতি করুন

1
@ ফ্যাটালাইজ ওয়েল আমি মজাদার প্রশ্নটি অনুমান করি, এটি কি একই পরিমাণে বা কুইনের চেয়ে কম বাইটে করা যায়?
মার্টিন এন্ডার

3
@ ফ্যাটালাইজ করা কি এটিও সম্ভব নয় যে আপনি একটি দীর্ঘ মেইকাকাইন লিখতে পারতেন যা একটি দীর্ঘ তবে বৈধ কুইন ছাপায়?
রাইজোম্যাটিক

উত্তর:


15

সিজেম, 6 বাইট

"_p"_p

ছাপে

"_p"
_p

যা সিজেমে সবচেয়ে সংক্ষিপ্ত যথাযথ কুইন।

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

উভয় প্রোগ্রাম হুবহু একই রকম কাজ করে, যেহেতু যথাযথ কুইনের অভ্যন্তরে লাইনফিডটি কোনও নো-অফ এবং কেবল অন্তর্ভুক্ত কারণ এটি আউটপুট থেকে অপসারণ করা আরও ব্যয়বহুল। প্রোগ্রামগুলি কীভাবে কাজ করে:

"_p"  e# Push this string.
_     e# Duplicate it.
p     e# Print a string representation of the top of the stack (i.e. the string with
      e# quotes) followed by a linefeed.
      e# The other copy is then printed automatically at the end of the program, without
      e# stringifying it.

সাইড নোট

গল্ফস্ক্রিপ্ট হিসাবে একই কাজ করে

".p".p

যা প্রিন্ট করে

".p"
.p

একটি পিছনে লাইনফিড সহ, যা ঘুরে দেখা যায় সংক্ষিপ্ততম পরিচিত কুইনগুলির মধ্যে একটি।


10

পাইথ, 12 11 10 9 বাইট

@ পিটু ১৯৯৮ এর জন্য আরও একটি বাইট ছুঁড়ে ফেলা হয়েছে।

jN B".[9N

এই মুদ্রণ

.[9N".[9N

যা পাইথের এক কুইন। আপনি এটা চেষ্টা করে দেখতে পারেন এখানে


স্বল্পতম পাইথ কুইনের আউটপুটটি কি নতুন রেকর্ড? আমি বিশ্বাস করি না যে আমি এটি আগে কখনও দেখেছি।
ETH প্রোডাকশনগুলি

আমি এটি অন্য কোথাও খুঁজে পাইনি। আমি এটি একটি মেটাওয়াইন পাওয়ার চেষ্টা করে সামনে এসেছি।
রাইজোম্যাটিক

1
সম্ভবত আপনার মূল কুইন চ্যালেঞ্জের উত্তর হিসাবে এটি পোস্ট করা উচিত :)
ETH প্রোডাকশনগুলি

2
আপনি এটি ব্যবহার করে jN B".[9Nবা 9 এ নামিয়ে আনতে পারেন .[9N"jN B। ( jN B"jN B9-এ আরও একটি সত্য কুইন রয়েছে: দ্বিখণ্ডিত পরিচয় ফাংশন এবং এতে যোগদান করুন"
পূর্কাকাডারী

@ Pietu1998 ধন্যবাদ! আমি জানতাম যে এটি 9 এ যাওয়ার জন্য অবশ্যই একটি উপায় থাকতে হবে পাইথের কোনও কুইন্স আছে যা 9 বাইটের চেয়ে ছোট?
রাইজোম্যাটিক



4

পাইথন 2, 29 বাইট

_="_=%r;print _%%_";print _%_

সুপরিচিত সংক্ষিপ্ত পাইথন কুইনটি সহজেই একটি মেটাक्ওয়াইনে রূপান্তরিত হয় :)

এবং, যেহেতু আমাদের পেছনের নতুন লাইনের সাথে মিলের বিষয়ে চিন্তা করতে হবে না, তাই মেটাকাইনটি আরও খাটো!


আমাকে এটিকে আবার মারধর করুন :( আমি একটি মোড়কের কথা ভেবেছিলাম তবে তোমার চেয়ে ভাল
এরিক দ্য আউটগল্ফার

3

জাপট, 15 13 বাইট

Q+"+Q ³s7J" ²

এটি অনলাইন পরীক্ষা!

এই প্রোগ্রাম আউটপুট

"+Q ³s7J"+Q ³s7J

যা জাপটে সবচেয়ে স্বল্পতম কুইন।

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

Q+"..." // Take a quotation mark plus this string.  "+Q ³s7J
²       // Repeat it twice.                         "+Q ³s7J"+Q ³s7J
        // Implicit output

অ-প্রতিযোগিতামূলক সংস্করণ, 11 বাইট

Q+"+Q ²é" ²

আমি সবেমাত্র é একটি "ঘোরান" কমান্ড যুক্ত করেছি । সুতরাং

"+Q ²é"+Q ²é

এখন একটি বৈধ কুইন।


1

রুবি, 25 23

puts"puts <<2*2,2
"*2,2

ক্লাসিক রুবি HEREdoc কুইন উত্পন্ন

puts <<2*2,2
puts <<2*2,2
2

পুরানো সমাধান

_='_=%p;$><<_%%_';$><<_%_

ডাবল কোট পরিবর্তিত একক উদ্ধৃতি ব্যতীত নিজেই উত্পন্ন করে।


1

জাভাস্ক্রিপ্ট, 50 বাইট

a="a=%s;console.log(a,uneval(a))";eval(a.slice(5))

সংক্ষিপ্ত অ-উত্স-পঠনকারী জেএস কুইনের উপর ভিত্তি করে মানুষের জানা , তবে একটি ভাল 8 বাইট সংক্ষিপ্ত। ছাপে

a="a=%s;console.log(a,uneval(a))";console.log(a,uneval(a))

যা একটি কুইন।


1

মাছ (> <>), 17 বাইট

এটি ক্লাসিক ফিশ কুইন ব্যবহার করে কাজ করে "r00g!;oooooooo|তবে একটি যুক্ত করে {যা পুরো স্ট্যাকটি বাম দিকে সরিয়ে দেয় যাতে মূল প্রোগ্রামটি কোন কুইন নয়, তবে চালিত হওয়ার পরে এটি হয়।

"{r00g!;oooooooo|

আউটপুট:

"r00g!;oooooooo|

কোন মাছের কুইন!


1

জেলি , ৩ বাইট (প্রতিদ্বন্দ্বী)

দুর্ভাগ্যক্রমে, প্রয়োজনীয় পরমাণুগুলি চ্যালেঞ্জের চেয়ে প্রায় 2 সপ্তাহ কম।

Metaquine

”Ṙv

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

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

”Ṙv  Main link. No arguments.

”Ṙ   Set the left argument and the return value to the character 'Ṙ'.
  v  Dyadic eval; evaluate the return value with the left argument as argument.
     Executing the atom Ṙ on the argument 'Ṙ' prints a string representation of
     the character, i.e., the string "”Ṙ".
     Finally, v returns its unaltered argument, which is printed implicitly.

Quine

”ṘṘ

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

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

”ṘṘ  Main link. No arguments.

”Ṙ   Set the left argument and the return value to the character 'Ṙ'.
  Ṙ  Print a string representation of the character, i.e., the string "”Ṙ".
     (implicit) Print the unaltered return value.

যেহেতু দ্বিতীয়টি প্রথম দুটি অক্ষর ( ”Ṙ) মুদ্রণ করে , এটি আমাদের সংজ্ঞা অনুসারে একটি যথাযথ কুইন।


1

অক্টোপেন-বারু, 22 বাইট

** প্রতিযোগিতামূলক উত্তর নেই

愛[35211].pack歩U')

রুবি আউটপুট

puts [35211].pack(' U')

কোন ফলাফল । অক্টোপেন-বারুতে কোনটি কুইন!


1

7 , 2 বাইট, ভাষা পোস্টডেটস চ্যালেঞ্জ

প্রোগ্রামটি দুটি বাইট দীর্ঘ, এবং বিভিন্ন উপায়ে ব্যাখ্যা করা যেতে পারে; একটি হেক্স ডাম্প হিসাবে:

00000000: 4ff4                                     O.

কোডেপেজ হিসাবে 437:

O⌠

বা, সবচেয়ে পাঠযোগ্যভাবে, অষ্টালে (যা 7 স্থানীয়ভাবে ব্যবহৃত হয়):

237723

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

এই ক্রিয়াকাণ্ড খুব সহজ: এটা আদর্শ 7 quine , একটি নো-অপ স্ট্যাক উপাদান দুই অর্ধেক মধ্যে সন্নিবেশিত সঙ্গে এটি পৃথক (এ প্রসঙ্গে, এ করতে 7আলাদা স্ট্যাক উপাদান)। (আমি এটি শুরুতে 723723inোকাতেও পারি। )

ঘটনাচক্রে, এই প্রোগ্রামটি হেক্সাডেসিমালের একটি , তবে এটি বেশিরভাগই কেবল কাকতালীয়।


1

আন্ডারলোড, 11 বাইট

(:aSS)::aSS

বেশ সহজ. এটি মুদ্রণ করে (:aSS):aSS, যা মানক আন্ডারলোড কোয়েন।


1

ব্র্যাচল্যাগ , 12 বাইট

"~k;?w₁"gjw₃

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

কাতারের উপরে 132 টি একই দৈর্ঘ্যের মেটাक्য়াইন তারতম্যের মধ্যে আমি ফ্যাটালাইজের ব্র্যাচল্যাগ ভি 1 (প্রতারণামূলক নয়) কোয়েন থেকে অনুবাদ করেছি translated আমি তাদের সমস্ত মুদ্রণের জন্য প্রকৃতপক্ষে একটি (অ-গল্ফযুক্ত এবং সামগ্রিক মূর্খ) প্রোগ্রাম লিখেছি:

{[[";?","gj","jḍ"],"₁₃₅₇"]j∋ᵐ{ḍ≠&};"\"~~k~ww~w\"~ww~w~n"}ᶠ{lw" metaquines generated:
"ẉ&}w₁ᵐ

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

সেখানে মূল quine দুটি অংশ যা inconsequentially প্রতিস্থাপিত হতে পারে: ;?পরিবর্তন করা যাবে gjঅথবা jḍ, এবং পরিবর্তন করা যাবে , অথবা । যদি আমরা সেগুলি স্ট্রিং আক্ষরিক বাইরে এবং স্ট্রিং আক্ষরিক ভিতরে অন্যভাবে রাখি বা পরিবর্তন করি তবে আউটপুট উত্সটির সাথে মেলে না কারণ স্ট্রিংয়ের মধ্যে যে কোনও রূপগুলি উপস্থিত ছিল এটির ভিতরে এবং বাইরে উভয়ই মুদ্রিত হবে , এমন একটি কুইনের ফলস্বরূপ যা প্রাথমিক প্রোগ্রামটি চালানো হয়নি।

;?, gjএবং jḍবিনিময়যোগ্য কারণ তিনটিই স্ট্রিংকে নিজের সাথে জুড়ে দেয়: প্রোগ্রামের বিন্যাসের কারণে ইনপুট ভেরিয়েবলটি ?স্ট্রিংয়ের সাথে একীভূত হয়, সুতরাং ;?স্ট্রিংটি নিজের সাথে জুড়ে দেয়; বিন্যাস নির্বিশেষে, gjস্ট্রিংটিকে একটি তালিকায় মুড়িয়ে দেয় যা তারপরে নিজের সাথে সংযুক্ত হয়; অনুরূপভাবেjḍ স্ট্রিংটি নিজের সাথে সংযুক্ত করে অর্ধেক অংশে বিভক্ত করে।

বিজোড়-সংখ্যাযুক্ত wসাবস্ক্রিপ্টগুলি বিনিময়যোগ্য কারণ, যদিও প্রাথমিকভাবে wকেবল 0 বা 1 নিতে পারে, 0 ইনপুট প্রিন্ট করা wএবং 1 দ্বারা দ্বিতীয়টির সাথে ফর্ম্যাট করা প্রথম উপাদানটি মুদ্রণ করা হলেও সাবস্ক্রিপ্ট ইনভেন্টরি wএমন কিছুতে পরিণত হয়েছিল যা বিটফিল্ড হিসাবে বাহ্যিকভাবে কাজ করে: সাবস্ক্রিপ্টের নিম্ন বিটটি সরাসরি বা বিন্যাসিত কিনা তা মাঝারি বিটটি আউটপুট পরিবর্তনশীল কিনা তা এনকোড করেwনিয়ন্ত্রণহীন বা ইনপুটটিতে সেট করা আছে এবং প্রিন্টিংটি তত্ক্ষণাত সমাপ্ত হয় কিনা বা প্রোগ্রামের শেষ হওয়া পর্যন্ত এটি বিলম্বিত হয় কিনা তাই উচ্চ বিট এনকোড হয় যাতে এটি ব্যাকট্র্যাকিংয়ের বিষয় হতে পারে। (এই সাবস্ক্রিপ্টগুলি ব্র্যাচল্যাগের জন্য আমার প্রথম এবং এ পর্যন্ত সবচেয়ে বড় অবদান ছিল)) যেহেতু কুইন এবং মেটাকাইন আউটপুট ভেরিয়েবল ব্যবহার করে না এবং ব্যাকট্র্যাক করে না, চারটি বিজোড় সাবস্ক্রিপ্ট সমান।


0

বেফঞ্জ -৩৩, ২২ বাইট

"+1_@#`+39:,g0:">:#,_@

আমি স্রেফ স্ট্যান্ডার্ড কুইনটি নিয়েছি, এটিকে উদ্ধৃতিতে রেখেছি, এটি বিপরীত করেছি (সুতরাং এটি সঠিকভাবে স্ট্যাকের উপরে লোড করা হয়), এবং তারপরে শেষে স্ট্যাক-প্রিন্ট যুক্ত করেছি।

এটি 8 টি অক্ষর সাধারণ কুইনে যুক্ত হয়েছে, সুতরাং এর থেকে আরও ভাল সমাধানের পক্ষে এটি খুব সম্ভবত possible


আপনি কি কেবল স্ট্যান্ডার্ড কুইন নিতে এবং একটি নতুন লাইন যুক্ত করতে পারবেন না? নতুন লাইনটি বিশ্লেষণ পর্যায়ে অদৃশ্য হয়ে যাবে, আপনাকে কেবলমাত্র স্ট্যান্ডার্ড কুইন (যা নিজেই মুদ্রণ করবে) দিয়ে রেখে যাবে।

0

Turtlèd , ৫২ বাইট ( )

আসল কুইনের চেয়ে 1 টি কম

@##'@r,r,r-{ +.r_}r{ +.r_}"#'@r,r,r-{ +.r_}r{ +.r_}"

একইভাবে কাজ করে, ব্যতীত এটির শেষে একটি চরিত্র না থাকে, রান করার পরে এটির শেষে একটি অক্ষর থাকবে যা আউটপুটকে প্রভাবিত করে না, কারণ এটি # তে একটি # লিখেছে। নোট আউটপুটটি কুইন চ্যালেঞ্জের জন্য আমি যে কাইন তৈরি করেছি তার থেকে কিছুটা আলাদা, তবে একই কাজ করে: "লিখেছেন #, যা তার নিজের শেষ চরিত্র, যেমনটি আমি তৈরি করেছিলাম তার মতোই there সেখানে ব্যাখ্যাটি দেখুন


0

লুয়া, 45 বাইট

কুইন কোড আমার নয়।

s="s=%qprint(s:format(s))"print(s:format(s));

ফলাফল হবে

s="s=%qprint(s:format(s))"print(s:format(s))

যা একটি কুইন। ভাল লাগছে ;হয় ঐচ্ছিক অ্যাপ্লিকেশন Lua হবে।


0

বিরক্তিকর ভাবে আত্মসাম্মুখ্যপূর্ণ , 7 বাইট

ভাষা প্রতিদ্বন্দ্বিতা হিসাবে প্রতিদ্বন্দ্বিতা চ্যালেঞ্জ পোস্ট।

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

95 34_"

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

95 34
: _ "

সবচেয়ে সংক্ষিপ্ত পুষি কুইন - এটি কীভাবে কাজ করে তার একটি ব্যাখ্যা এখানে পাওয়া যাবে

বিকল্পভাবে, H5-34_"একই বাইট গণনা জন্য কাজ করে।


0

ফোম , 14 বাইট

[. .'|: ~|]: ~

এটি এখানে পাওয়া যাবে এমন দ্বিতীয় ফোম কুইনটি মুদ্রণ করে । এটি প্রকৃতপক্ষে সংক্ষিপ্ত কারণ .প্রতিটি উপাদানটির মধ্যে সর্বদা একটি স্থান রাখবে, তবে তৃতীয় টোকেনের বারটি আমাকে এর আগে স্থানটি বাদ দিতে দেয়।


আমি অ-প্রতিযোগিতামূলক বিটটি সরিয়ে ফেলেছি কারণ নতুন নীতিগুলি সাইট নীতি অনুসারে স্বয়ংক্রিয়ভাবে প্রতিযোগিতামূলক নয়।
মেগো

0

কাস্তে , 6 বাইট

D"S+s¨

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

স্ট্যান্ডার্ড হুস্ক কুইন মুদ্রণ করে S+s"S+s"

 "S+s¨    The string S+s"
D         concatenated with itself.

কুইন ব্যাখ্যা করেছেন:

   "S+s"    The string S+s
 +          concatenated with
S           itself passed through
  s         the function which returns its string representation.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.