জনপ্রিয় ওয়েবকমিক হোমস্টাক একটি প্রোগ্রামিং ভাষা ব্যবহার করে যা ~ATH
মহাবিশ্বকে ধ্বংস করার জন্য ডাকা হয়। যদিও এই কোড গল্ফ চ্যালেঞ্জটি আমাদের অস্তিত্বকে ধ্বংস করার জন্য কোনও প্রোগ্রাম লিখতে নয় , আমরা আরও কিছু কৌতুক (কম আকর্ষণীয় হলেও) সত্তা: ভেরিয়েবলকে ধ্বংস করব ।
~ATH
( ~ath
"টিলড অ্যাথ" হিসাবে চিহ্নিত "লক্ষ্য করুন কীভাবে " টিল্ড অ্যাথ "হয়) নামক একটি ভেরিয়েবল তৈরি করে THIS
, একটি কমান্ড কার্যকর করে EXECUTE
এবং প্রোগ্রামটি শেষ করে কাজ করে THIS.DIE()
। হোমস্টাকের ভাষা ব্যবহারের জন্য একটি উইকি পৃষ্ঠা এখানে পাওয়া যাবে । এই চ্যালেঞ্জের লক্ষ্য হ'ল ~ATH
দোভাষী তৈরি করা ।
চ্যালেঞ্জের স্বার্থে, আমি এমন কিছু বিশদ তৈরি করতে যাচ্ছি ~ATH
যা বাস্তবে বিদ্যমান নয় তবে এটি (কিছুটা) দরকারী করে তোলা।
- ভাষাটি কেবল পূর্ণসংখ্যার সাথে কাজ করবে, যা ঘোষিত হয়েছে
import <variable name>;
। ভেরিয়েবলটি স্বয়ংক্রিয়ভাবে 0 এর মানতে সেট করা হবে একবারে কেবলমাত্র একটি পরিবর্তনশীল আমদানি করা যায়। - একটি পরিবর্তনশীল
x
লিখে অনুলিপি করা যেতে পারেbifurcate x[y,z];
, যা ভেরিয়েবল মুছবেx
এবং এটি অভিন্ন ভেরিয়েবলy
এবং এর সাথে প্রতিস্থাপন করবেz
। মনে রাখবেন যে এটি মুছে ফেলা একই নামের সাথে একটি ভেরিয়েবল তৈরি করতে পারে না। মূলত, একটি ভেরিয়েবলের নতুন নামকরণ করা হয়, তারপরে ভিন্ন নামের সাথে ভেরিয়েবলের একটি অনুলিপি তৈরি করা হয়। এটি একটি নির্বোধ বৈশিষ্ট্য বলে মনে হয় তবে বোকামি খুব গভীরভাবে হোমস্টাকের মধ্যে আবদ্ধ হয়। - কোডটি কার্যকর করে
x
এমন একটি প্রোগ্রাম লেখার সিনট্যাক্সটি হল~ATH(x){EXECUTE(<code>)}
। আপনি একই সাথে দুটি ভেরিয়েবল কোডটি চালানো চান, কোড নেস্টেড হয়ে, এরকম:~ATH(x){~ATH(y){EXECUTE(<code>)}}
। সমস্ত কমান্ড<code>
উভয়x
এবং উভয়তেই কার্যকর করা হবেy
। - এখন কমান্ডের দিকে সরানো যাক।
+
প্রাসঙ্গিক পরিবর্তনশীল (গুলি) 1 দ্বারা বৃদ্ধি করে-
সেগুলি 1 দ্বারা হ্রাস করে And এবং ... এটিই। - এর চূড়ান্ত বৈশিষ্ট্য
~ATH
হ'ল এটি যা কাজ করে তা মেরে ফেলে। ভেরিয়েবলগুলি<name>=<value>
কমান্ডে বিন্যাসে (একটি নতুন লাইন অনুসরণ করে) মুদ্রিত হয়[<name>].DIE();
। এরপরে, প্রোগ্রামটি শব্দটিDIE <name>
এবং একটি নতুন লাইনটি ভেরিয়েবলের মানটির পরম মানের সমান একাধিক বার মুদ্রণ করে । যখন ভেরিয়েবলগুলি একসাথে হত্যা করা হয়[<name1>,<name2>].DIE();
(আপনি যতটা ভেরিয়েবল চান তার যতক্ষণ না তারা উপস্থিত থাকতে পারে ততক্ষণ পর্যন্ত)DIE()
কমান্ডটি ভেরিয়েবলগুলিতে ধারাবাহিকভাবে কার্যকর করা হয়।
উদাহরণ প্রোগ্রাম
প্রোগ্রাম 1:
import sollux; //calls variable "sollux"
import eridan; //calls variable "eridan"
~ATH(sollux){EXECUTE(--)} //sets the value of "sollux" to -2
~ATH(eridan){EXECUTE(+++++)} //sets the value of "eridan" to 5
[sollux].DIE(); //kills "sollux", prints "DIE sollux" twice
~ATH(eridan){EXECUTE(+)} //sets the value of "eridan" to 6
[eridan].DIE(); //kills "eridan", prints "DIE eridan" 6 times
আউটপুট:
sollux=-2
DIE sollux
DIE sollux
eridan=6
DIE eridan
DIE eridan
DIE eridan
DIE eridan
DIE eridan
DIE eridan
প্রোগ্রাম 2:
import THIS; //calls variable "THIS"
~ATH(THIS){EXECUTE(++++)} //sets the value of "THIS" to 4
bifurcate THIS[THIS1,THIS2]; //deletes "THIS", creates variables "THIS1" and "THIS2" both equal to 4
~ATH(THIS1){EXECUTE(++)} //sets the value of "THIS1" to 6
[THIS1,THIS2].DIE(); //kills "THIS1" and "THIS2", prints "DIE THIS1" 6 times then "DIE THIS2" 4 times
import THAT; //calls variable "THAT"
bifurcate THAT[THESE,THOSE]; //deletes "THAT", creates variables "THESE" and "THOSE"
~ATH(THESE){~ATH(THOSE){EXECUTE(+++)}EXECUTE(++)} //sets the value of "THESE" and "THOSE" to 3, then sets the value of "THESE" to 5
[THESE,THOSE].DIE(); //kills "THESE" and "THOSE", prints "DIE THESE" 5 times then "DIE THOSE" 3 times
আউটপুট:
THIS1=6
DIE THIS1
DIE THIS1
DIE THIS1
DIE THIS1
DIE THIS1
DIE THIS1
THIS2=4
DIE THIS2
DIE THIS2
DIE THIS2
DIE THIS2
THESE=5
DIE THESE
DIE THESE
DIE THESE
DIE THESE
DIE THESE
THOSE=3
DIE THOSE
DIE THOSE
DIE THOSE
এটি কোড গল্ফ, সুতরাং মানক বিধি প্রযোজ্য। বাইটস মধ্যে সংক্ষিপ্ত কোড।
~ATH
জন্য লাইন শেষা w শ যেমন সেমিকোলন ব্যবহার import
, bifurcate
এবং DIE
কমান্ড। REPL এবং ফাইল উভয়ই ঠিক আছে। ইনপুট এবং আউটপুট উভয় ক্ষেত্রে কেস সংবেদনশীলতা প্রয়োজন (আমি ~ATH
যতটা সম্ভব বাস্তবের সাথে মেলে যাবার চেষ্টা করছি )।