চ্যালেঞ্জ
এই চ্যালেঞ্জে আপনি একটি উত্স ভাষা S
এবং একটি লক্ষ্য ভাষা নির্দিষ্ট করে T
। আপনার কাজটি হ'ল নিম্নলিখিত প্রোগ্রামটি P
ভাষায় লিখুন S
। যদি Q
ভাষার কোনও বৈধ প্রোগ্রামকে T
ইনপুট হিসাবে দেওয়া হয় P
, তবে R
এটি ভাষায় একটি বৈধ প্রোগ্রাম আউটপুট দেবে T
যা কোনও ইনপুট এবং আউটপুট নেয় না Q(R)
, অর্থাৎ প্রোগ্রামটির Q
উত্স কোডে প্রয়োগ হয় R
। এছাড়াও , আপনার জবাবটিতে একটি অযৌক্তিক উদাহরণ প্রোগ্রাম উপস্থিত করা উচিত Q
(আরও আকর্ষণীয়, আরও ভাল, যদিও আপনি এটির জন্য কোনও পয়েন্ট করেন না), ফলস্বরূপ প্রোগ্রাম R
এবং আউটপুট R
। এটি কোড-গল্ফ, তাই P
জয়ের জন্য সংক্ষিপ্ততম কোড ।
অন্য কথায়, এটি "ইউনিভার্সাল কুইন কনস্ট্রাক্টর" লেখার বিষয়ে একটি চ্যালেঞ্জ যা স্বেচ্ছাসেবী জাতীয় কুইন্স তৈরি করতে পারে।
ব্যাখ্যা
- আপনার উত্স এবং লক্ষ্য ভাষা একই হতে পারে।
- প্রোগ্রামটি
P
প্রতিটি স্ট্রিং প্রোগ্রামের মতো ইনপুট হিসাবে একটি স্ট্রিং (এসটিডিআইএন বা সমতুল্য থেকে) এবং আউটপুট একটি স্ট্রিং (এসটিডিআউট বা সমমানের) হওয়া উচিতR
। - ইনপুট প্রোগ্রামগুলিকে
Q
স্ট্রিংটিকে অন্য স্ট্রিংয়ে রূপান্তর করা উচিত, তবে তাদের ফর্মটি আরও নমনীয়: এগুলি স্ট্রিং-টু-স্ট্রিং ফাংশন হতে পারে, কোড স্নিপেটগুলি যা কোনও নির্দিষ্ট নামের সাথে একটি ভেরিয়েবল সংশোধন করে, স্নিপেটগুলি যা আপনার টার্গেটের ভাষা যদি ডেটা স্ট্যাককে পরিবর্তন করে দেয় এর একটি রয়েছে ইত্যাদি You আপনি আরওQ
উল্লেখ করে এই ফর্মটিকে আরও সীমাবদ্ধ করতে পারেন উদাহরণস্বরূপ, এগুলিতে কোনও মন্তব্য থাকতে পারে না। যাইহোক, যদি আপনি একটি ইনপুট প্রোগ্রাম হিসাবে কোনো গণনীয় স্ট্রিং-টু-স্ট্রিং ফাংশন বাস্তবায়ন করতে সক্ষম হওয়া আবশ্যকQ
, আর আপনি নয় স্পষ্টভাবে রাষ্ট্র কিভাবে তারা কাজ এবং কি আরও সীমাবদ্ধতা আপনি তাদের উপর রাখুন। - আউটপুট প্রোগ্রামটি
R
সত্যই একটি (সাধারণীকৃত) কুইন হওয়া উচিত, সুতরাং এটি না করা থাকলে কোনও ইনপুট (ব্যবহারকারী ইনপুট, ফাইল ইত্যাদি) পড়া উচিত নয়Q
। - স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
একটি উদাহরণ
ধরুন আমি পাইথনকে আমার উত্স ভাষা হিসাবে বেছে নিয়েছি, এবং হাস্কেলকে আমার টার্গেট ল্যাঙ্গুয়েজ হিসাবে বেছে নিয়েছি এবং আমার আরও প্রয়োজন যে ইনপুট প্রোগ্রামটি একটি String -> String
ফাংশনটির একটি-লাইন সংজ্ঞা হওয়া উচিত f
। আমি যদি স্ট্রিং-রিভার্সিং প্রোগ্রামটি দিই
f x = reverse x
আমার পাইথন প্রোগ্রামে ইনপুট হিসাবে P
এটি অন্য একটি হাস্কেল প্রোগ্রামের উত্স কোড আউটপুট দেবে R
। এই প্রোগ্রামটি এর উত্স কোডটি বন্ধ করার জন্য প্রিন্ট করে R
তবে বিপরীত হয়। যদি P
পরিচয় ফাংশন দেওয়া হয়
f x = x
ইনপুট হিসাবে, আউটপুট প্রোগ্রাম R
একটি quine।