তৃতীয় অর্ডার কোয়েন লিখুন


17

এই চ্যালেঞ্জটি ' গল্ফ একটি মিউচুয়াল কুইন ' এর সম্প্রসারণ ।

আপনার পছন্দের তিনটি ভাষা ব্যবহার করে একটি তৃতীয় ক্রম আওোবোরাস প্রোগ্রাম তৈরি করুন।

এটি, ভাষার A তে, একটি প্রোগ্রামের pA লিখুন যা প্রোগ্রামের PB কে ভাষাতে আউটপুট করে দেয়। প্রোগ্রামের PB এর সি সি ভাষায় প্রোগ্রামের পিসি আউটপুট করা উচিত, যার ফলে ভাষা A তে মূল প্রোগ্রামের pA আউটপুট হয় Program

এ, বি এবং সি তে কোনও দুটি ভাষাই একে অপরের একই বা উপগ্রহ বা সুপারসেট হতে পারে না। পিএ, পিবি বা পিসির কোনওটিই অভিন্ন হতে পারে না।

উদাহরণস্বরূপ, একটি হাস্কেল প্রোগ্রাম একটি পার্ল প্রোগ্রাম আউটপুট করে যা একটি জাভা প্রোগ্রাম আউটপুট করে যা আসল হাস্কেল প্রোগ্রামটি কার্যকর করে বৈধ হবে।

অন্যদিকে, একটি সি # 4 প্রোগ্রাম যা একটি সি # 3 প্রোগ্রাম আউটপুট করে যা একটি সি # 2 প্রোগ্রামকে আউটপুট করে তা অবৈধ। এমনকি পার্ল -> রুবি -> বাশ সমন্বয়টি অবৈধ হবে যদি, যদি বলা যায় যে পার্ল প্রোগ্রাম এবং রুবি প্রোগ্রামটি অভিন্ন ছিল।

এটি কোড গল্ফ, তাই সংক্ষিপ্ততম প্রোগ্রামের পিএ জিতেছে।


উত্তর:


21

পাইথন -> পার্ল -> রুবি, 48 টি অক্ষর

আমার আগের উত্তরটি অভিযোজিত । চলমান

s='print q<puts %%q{s=%r;print s%%s}>';print s%s

পাইথন সহ এই পার্ল স্নিপেট তৈরি করে

print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>

যা নিম্নলিখিত রুবি কোড উত্পন্ন করে

puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}

যা তখন মূল পাইথনের স্নিপেট মুদ্রণ করে:

diff -s <(ruby <(perl <(python thirdorderquine.py))) thirdorderquine.py 
Files /dev/fd/63 and thirdorderquine.py are identical

13

পার্ল -> পিএইচপি -> এইচটিএমএল + জাভাস্ক্রিপ্ট, 105 টি অক্ষর

আমি ভাষার শৃঙ্খলা কোনওভাবে অর্থবহ করে তুলতে চেয়েছিলাম, তাই আমি বুঝতে পেরেছিলাম যে আমি একটি পিএইচপি স্ক্রিপ্ট লিখব যা জাভাস্ক্রিপ্টযুক্ত একটি HTML পৃষ্ঠা তৈরি করে। তৃতীয় ভাষার জন্য আমি পার্লকে বেছে নিয়েছি, কারণ আমি পার্ল পছন্দ করি। :)

কেউ কেউ এই চারটি ভাষা বিবেচনা করতে পারে তবে আমি এখানে HTML- কে জাভাস্ক্রিপ্ট থেকে আলাদা হিসাবে গণ্য করি না - এটি একটি মার্কআপ ভাষা, প্রোগ্রামিংয়ের ভাষা নয়। যাইহোক, এখানে তিনটি সংস্করণ:

পার্ল (105 টি চর):

printf+(q(<script>alert(unescape("<?=urlencode(<<<E%sprintf+(q(%s),$/)x2,$/%sE%s)?>"))</script>),$/)x2,$/

পিএইচপি (165 অক্ষর):

<script>alert(unescape("<?=urlencode(<<<E
printf+(q(<script>alert(unescape("<?=urlencode(<<<E%sprintf+(q(%s),$/)x2,$/%sE%s)?>"))</script>),$/)x2,$/
E
)?>"))</script>

এইচটিএমএল + জাভাস্ক্রিপ্ট (235 অক্ষর):

<script>alert(unescape("printf%2B%28q%28%3Cscript%3Ealert%28unescape%28%22%3C%3F%3Durlencode%28%3C%3C%3CE%25sprintf%2B%28q%28%25s%29%2C%24%2F%29x2%2C%24%2F%25sE%25s%29%3F%3E%22%29%29%3C%2Fscript%3E%29%2C%24%2F%29x2%2C%24%2F"))</script>

(গীত। হ্যাঁ, আমি জানি যে আমি পিএইচপি পদক্ষেপটি প্রায় নূরে পরিণত করতে পারতাম, যেমন পার্লে কেবলমাত্র এইচটিএমএল + জেএস কোড তৈরি করা এবং এতে সংযোজন <?phpকরা, তবে এটি প্রতারণার মতো অনুভূত হয়েছিল this এই সমাধানে কোডটি আসলে কেবল কপিরাইট শব্দের পরিবর্তে পিএইচপি-তে প্রক্রিয়া করা হয়েছে))


3

আন্ডারলোড → সেড → পার্ল, 23 বাইট

ভাষাগুলির আরও ভাল পছন্দ সহ এটি এটিকে কমিয়ে আনতে পারে। যুক্তিযুক্তভাবে নন-কেপটেটিং কারণ নিয়ম "সেড প্রোগ্রামগুলি একটি খালি লাইনটি যুক্তি হিসাবে নিতে পারে" প্রতিযোগিতা পোস্টডেট করে।

আন্ডারলোড প্রোগ্রাম:

((iprint+q)Sa(:^)*aS):^

সেড প্রোগ্রাম উত্পন্ন:

iprint+q(((iprint+q)Sa(:^)*aS):^)

যা পার্ল প্রোগ্রাম উত্পন্ন করে:

+ Q প্রিন্ট (((+ Q প্রিন্ট) সং (: ^) * হিসাবে): ^)


(দ্রষ্টব্য: এখানে দুটি ট্রেলিং নিউলাইন রয়েছে), যা আবার মূল আন্ডারলোড প্রোগ্রাম উত্পন্ন করে:

((iprint+q)Sa(:^)*aS):^

এখানে মূল লক্ষ্য হ'ল যে ভাষাগুলিতে স্ট্রিং বাসা বাঁধে সেগুলি অনুসন্ধান করা (যেমন আপনি কেবল একটি স্ট্রিংটি বিভাজনকারীদের মধ্যে আবদ্ধ করার পরিবর্তে তা বিভাজনকারীদের মধ্যে আবদ্ধ করে উদ্ধৃত করতে পারেন); আন্ডারলোড রয়েছে (), পার্ল আছে q(), এবং সেডে একটি স্ট্রিং সাদা জায়গা পর্যন্ত অব্যাহত রয়েছে (যা প্রোগ্রামে কোনও শ্বেত স্পেস না থাকলে স্পষ্টভাবে বাসা বাঁধে )। সেখানে সম্ভবত "বর্তমান লাইনের বাকী অংশ প্রিন্ট করুন, নিউলাইনগুলি অনুসরণ করবেন না" নির্দেশাবলী সহ সম্ভবত এখানে একটি এসোলাং বা গল্ফিংয়ের ভাষা রয়েছে, যা এখানে আদর্শ হতে পারে, তবে আমি এটির সন্ধান করতে এতটা সময় ব্যয় করি নি; সেক্ষেত্রে আপনি নির্দেশের দৈর্ঘ্যটি 8 বাইট বিয়োগ করতে পারবেন। (জেলি প্রায় কাজ করে তবে এর নির্দেশনা নিজেই উদ্ধৃতি দেয় না Besides এছাড়াও, এটি চ্যালেঞ্জ পোস্টডেট করে))

আপনি এটির মতো এটি 22 টি বাইটে হ্রাস করতে পারেন :

((Csay + Q) সং (: ^) * হিসাবে): ^

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

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