মুরিয়ালের মতো ভাষা এবং বাস্তবায়ন তৈরি করুন


9

মুরিয়েল এমন একটি ভাষা যেখানে লুপের একমাত্র উপায় হল একটি কুইন তৈরি করা এবং এটি সম্পাদন করা। আপনার কাজ হ'ল এই সম্পত্তি দিয়ে আপনার নিজস্ব ভাষা তৈরি করা এবং এটি একটি প্রাক-বিদ্যমান ভাষায় এটি প্রয়োগ করা।

আমরা নীচের মতো একটি মুরিয়ালের মতো ভাষা সংজ্ঞায়িত করব:

  1. মুরিয়েলের @কমান্ড বা পাইথনের অনুরূপ নিজস্ব ভাষায় কোড সম্পাদন করার জন্য এটি একটি অন্তর্নির্মিত কমান্ড রয়েছে exec
  2. এটি টুরিং সম্পূর্ণ।
  3. যদি আপনি বিল্ট-ইন এক্সিকিউশন কমান্ডটি সরিয়ে ফেলেন তবে এটি আর ট্যুরিং সম্পূর্ণ নয়।

মিউরিয়েল @তার বিল্ট-ইন এক্সিকিউশন কমান্ড হিসাবে মুরিয়ালের মতো । স্মুরফও মুরিয়ালের মতো (এটি বিল্ট-ইন এক্সিকিউশন কমান্ডটি x)। পাইথন না Muriel মত, এটা এখনও সম্পূর্ণ টুরিং হয় যেহেতু আপনি অপসারণ exec

আপনার কাজ হ'ল মিউরিলের মতো প্রোগ্রামিং ভাষা তৈরি করা এবং তারপরে আপনার পছন্দের ভাষায় এটির বাস্তবায়ন সরবরাহ করা। আপনার স্কোরটি বাস্তবায়নের দৈর্ঘ্য, যা আপনি হ্রাস করার চেষ্টা করছেন।

মন্তব্য:

  1. আপনার বিল্ট-ইন এক্সিকিউশনে মিউরিলের ঠিক মতো কাজ করার দরকার নেই। এটি কীভাবে এটি শিশু প্রোগ্রাম, ত্রুটি, স্কোপিং ইত্যাদির সমাপ্তি পরিচালনা করে ...
  2. আপনি প্রয়োগের জন্য যে ভাষাটি লেখেন সে নিজেই মুরিয়ালের মতো হতে পারে না । (এটি এমন যে @কোনও বৈধ এন্ট্রি নয়)) এটি অবশ্যই এই পোস্টের আগে উপস্থিত থাকতে পারে।

আন্ডারলোড কি মুরিয়ালের মতো ভাষা?
আলেফাল্ফ

@ জেরি জেরেমিয়া কি আমার সম্পাদনা এটিকে আরও স্পষ্ট করে তোলে?
পাইরুলেজ

@ এলফাল্ফা যে উইকি বলেছেন "" ^ ছাড়া, বাকি প্রোগ্রামগুলি সর্বদা আকারে হ্রাস পাবে, শেষ পর্যন্ত থামবে। " যদি এটি সত্য হয়, তবে হ্যাঁ, আন্ডারলোডটি মুরিয়ালের মতো।
পাইরুলেজ

আপনার লক্ষ্য ভাষায় একাধিক evalআদেশ থাকলে আপনি কী করবেন ? (উদাহরণস্বরূপ পাইথন execএবং eval) টিসিনেস হারাতে তাদের সকলের অপসারণের প্রয়োজন?
ক্যালকুলেটরলাইন 21

1
@ পাইরুলেজ আমি মনে করি এটি কোড-গল্ফের চেয়ে জনপ্রিয়তা-প্রতিযোগিতা হওয়া উচিত , কারণ অন্যথায় বাস্তবায়নের ভাষা নির্বাচন এটিকে একটি গিরগিটি চ্যালেঞ্জ হিসাবে পরিণত করবে
উরিয়েল

উত্তর:


3

পাইথন 3 এবং "আন্ডারলোডের ন্যূনতম টিসি উপসেট তবে অক্ষরগুলি পরিবর্তিত হয়েছিল 2019, বিপরীত হয়েছে এবং 0উপরে থাকবে", 156 বাইট

c=input()
n=1
t=c
s=[]
while c:
 *c,i=c
 if n:
  if"6">i:n+=int(i)-1
  if n:t=[i]+t
  else:s+=[t];t=[]
 elif"2"==i:n=1
 elif"2">i:s+=s[-1:]
 else:c+=s.pop()

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

শিরোনামে ব্যাখ্যা, ফুটারে কোড মন্তব্য করেছে।


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