যেহেতু আমরা যথেষ্ট রহস্যময় ভাষা গল্ফ পেতে পারি না, তাই না?
/// - উচ্চারিত স্ল্যাশs///
-এটি পার্ল খ্যাতির রিজেক্স-রিপ্লেসমেন্ট ফাংশনের উপর ভিত্তি করে একটি মজাদার ছোট্ট ভাষা । এটিতে কেবল দুটি বিশেষ অক্ষর রয়েছে, স্ল্যাশ /
এবং ব্যাকস্ল্যাশ \
। আপনি এটির উপর একটি সম্পূর্ণ নিবন্ধ esolangs উইকিতে খুঁজে পেতে পারেন , তবে আমি নীচের ভাষার বর্ণন , পাশাপাশি কয়েকটি উদাহরণ পুনরুত্পাদন করব।
সংক্ষেপে, এটি /pattern/repl/rest
প্রোগ্রামে চিহ্নিতকরণ এবং প্রতিস্থাপনকে যতবার সম্ভব সম্ভব করে তৈরি করে কাজ করে। ব্যতীত কোন অক্ষর বিশেষ /
এবং \
: /
demarcates নিদর্শন এবং প্রোগ্রামে প্রতিস্থাপন, যখন \
আপনি আক্ষরিক সন্নিবেশ করতে পারেন /
অথবা \
আপনার কোড মধ্যে অক্ষর। উল্লেখযোগ্যভাবে, এগুলি নিয়মিত প্রকাশ নয়, কেবল সরল স্ট্রিং প্রতিস্থাপন।
আপনার চ্যালেঞ্জটি হ'ল /// ভাষার জন্য একজন অনুবাদক তৈরি করুন, হয় কোনও প্রোগ্রাম যেমন STDIN পড়া বা কোনও ফাংশন যতটা সম্ভব কম অক্ষরে স্ট্রিং আর্গুমেন্ট গ্রহণ করা।
আপনি নিজে /// ব্যতীত অন্য যে কোনও ভাষা ব্যবহার করতে পারেন। আপনি /// ব্যাখ্যা করে এমন কোনও গ্রন্থাগার ব্যবহার করতে পারবেন না; আপনি তবে রেজিেক্সস, রেজেক্স লাইব্রেরি বা স্ট্রিং-ম্যাচিং লাইব্রেরি ব্যবহার করতে পারেন।
ফাঁসি
চারটি রাজ্য, মুদ্রণ , প্যাটার্ন , প্রতিস্থাপন এবং প্রতিস্থাপন রয়েছে । প্রতিস্থাপন ব্যতীত প্রতিটি রাজ্যে :
- প্রোগ্রামটি ফাঁকা থাকলে কার্যকর করা বন্ধ হয়ে যায়।
- অন্যথায়, যদি প্রথম চরিত্রটি হয়
\
তবে পরবর্তী অক্ষরটির সাথে কিছু করুন (উপস্থিত থাকলে) এবং প্রোগ্রামটি থেকে উভয়কে সরিয়ে দিন। - অন্যথায়, যদি প্রথম অক্ষর হয়
/
তবে এটিকে সরিয়ে ফেলুন এবং পরবর্তী অবস্থায় পরিবর্তন করুন। - অন্যথায়, প্রথম চরিত্রটি দিয়ে কিছু করুন এবং এটি প্রোগ্রাম থেকে সরিয়ে দিন।
- পদ্ধতি পুনরাবৃত্তি করুন।
মাধ্যমে চক্র যুক্তরাষ্ট্রের মুদ্রণ , প্যাটার্ন , প্রতিস্থাপন , এবং প্রতিস্থাপন যাতে।
- ইন মুদ্রণ মোড, মানে আউটপুট অক্ষরটি হ'ল 'কিছু'।
- ইন প্যাটার্ন মোড, মানে বর্তমান প্যাটার্ন চরিত্র যোগ করা 'কিছু'।
- ইন প্রতিস্থাপন মোড, মানে বর্তমান প্রতিস্থাপন চরিত্র যোগ করা 'কিছু'।
ইন প্রতিকল্পন মোডে, নিয়ম বিভিন্ন সেট অনুসরণ করুন। প্রোগ্রামে বর্তমান প্রতিস্থাপনের সাথে বারবার বর্তমান প্যাটার্নটির প্রথম উপস্থিতিটি প্রতিস্থাপন করুন, যতক্ষণ না আরও বিকল্পগুলি সম্ভব না হয়। সেই সময়ে, প্যাটার্ন এবং রিপ্লেসমেন্টটি সাফ করুন এবং মুদ্রণ মোডে ফিরে আসুন।
প্রোগ্রামে /foo/foobar/foo foo foo
, নিম্নলিখিতটি ঘটে:
/foo/foobar/foo foo foo
foo foo foo
foobar foo foo
foobarbar foo foo
foobarbarbar foo foo
...
এটি চিরকালের জন্য লুপ করে এবং কখনও প্রতিস্থাপন মোড থেকে বের হয় না। একইভাবে, যদি প্যাটার্নটি খালি থাকে, তবে প্রোগ্রামের শুরুতে খালি স্ট্রিংয়ের প্রথম উপস্থিতিটি সর্বদা মেলে, তাই প্রতিস্থাপনের মোড চিরতরে লুপ হয়ে যায়, কখনও থামবে না।
উদাহরণ
no
আউটপুট: no
।
/ world! world!/Hello,/ world! world! world!
আউটপুট: Hello, world!
।
/foo/Hello, world!//B\/\\R/foo/B/\R
আউটপুট: Hello, world!
।
a/ab/bbaa/abb
আউটপুট: a
। প্রোগ্রাম থেমে নেই।
//
আউটপুট: কিছুই না।
///
আউটপুট: কিছুই না। প্রোগ্রাম থেমে নেই।
/\\/good/\/
আউটপুট: good
।
\
চরিত্রটি অনুসরণ করে এমন কোনও চরিত্রকে ছাড়িয়ে যায়, এগুলি সহ /
, যা পরে সাধারণ হিসাবে ব্যবহার করা যেতে পারে। যদিও এটি খুব বেশি দেখাচ্ছে না, এটি /// ট্যুরিং-সম্পূর্ণ করে তোলে ।
///
আইডিইতে এই তথ্যটি ব্যবহার করবে !
/-/World//--/Hello//--W/--, w/---!
কি ভালবাসা না? (শেষ থেকে ড্যাশ অপসারণের চেষ্টা করুন)