বার্লেস্ক, 40 বাইট
ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh
ব্যাখ্যা:
বার্লেস্কের বিল্ট-ইনগুলি উন্নত স্ট্যাক এবং কোড ম্যানিপুলেশন রয়েছে। আসলে, আপনি প্রোগ্রামটির উত্স কোডটি অ্যাক্সেস করতে পারবেন না তবে ভবিষ্যতে কার্যকর করার জন্য অবশিষ্ট কোডটি অ্যাক্সেস করতে পারবেন। এর অর্থ এই #Q
কোডটি অনুসরণ করে সমস্ত কোড ফেরত দেবে যার কারণেই আমরা সেই কোডটিতে সমস্ত কিছু যুক্ত করতে হবে যা আমরা #Q
যা করছি তার দ্বারা ri#Q
।
blsq ) #Q1 2++
12 -- this is the result of 1 2++
{1 2 ++} -- this is the result of #Q
++1 2
এটি স্ট্যাক ভিত্তিক প্রযুক্তিগতভাবে অবৈধ কোড। তবে কোডটি এটিকে কার্যকর করার জন্য আমরা কারসাজি করতে পারি 1 2++
:
blsq ) #Q<-#q++1 2
12
এই বিল্ট-ইনগুলির সাথে কাজ করা অবিশ্বাস্যরূপে জটিল এবং কেউই তাদেরকে কুইন সম্পর্কিত জিনিসগুলি ব্যতীত উত্পাদনমূলক কোনও কিছুর জন্য ব্যবহার করেন নি। আপনি যদি বিপরীত হন তবে ++1 2
তা পাবেন 2 1++
যা উত্পাদন করবে 21
এবং না 12
। উপরের কোডটি উত্পন্ন করার কারণটিও অন্তর্ভুক্ত রয়েছে 12
কারণ শেষ পর্যন্ত আমরা ঠিক ছাড়া অনেকগুলি সম্পাদন করি : পি। আমরা নির্বাহ শেষ যা উত্পাদন করে ।#Q
<-
2 1++
2 1++#q<-
12
আমরা আসলে আমাদের কোডের জিনিসগুলিকে প্রতিস্থাপন করতে পারি উদাহরণস্বরূপ এই কোডটি ?+
নিজের সাথে সমস্ত উপস্থিতিকে প্রতিস্থাপন করে?*
blsq ) #Q(?+)(?*)r~5.-#q5 5?+
25
ব্যবহার:
$ echo "1" | blsq --stdin 'ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh'
hs fi sp "-<" j +. /\ "Q#ir" -~ HS 2Q#ir
$ echo "0" | blsq --stdin 'ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh'
ri#Q2 SH ~- "ri#Q" \/ .+ j "<-" ps if sh