গাজর , 77 51 বাইট
<th>A^*$v<tr>vl+(^h)*($^F- 1)A"h"S"d"h+(^l)v<table>
(এটি কাজ করার সময়, আমি h
কাজ না করে একটি বাগ আবিষ্কার করেছি এবং এটি ঠিক করেছি)
এইচটিএমএল সংক্ষিপ্ত করে "প্রতিস্থাপন" এর পরিবর্তে "বিভক্ত, যোগদান" ব্যবহার করে কিছু বাইট গল্ফ করেছেন
এটি অনলাইন চেষ্টা করুন! কমান্ড-লাইন বিকল্পটি ব্যবহার করুন-d
এএসটি দেখতে (দ্রষ্টব্য: এটি নতুন নোড ইন্টারপ্রেটার ব্যবহার করে, সুতরাং ওয়েবসাইটটিতে পুরানো সংস্করণ এটি চালাতে পারে না))
এই প্রোগ্রামটি 0 ইনডেক্সটি সূচকযুক্ত এবং বিপরীত ক্রমে গ্রহণ করে কারণ ক্যারোটের অদ্ভুত প্রকৃতির 3 2
3 × 4 টেবিলটি মুদ্রণ করে।
প্রোগ্রামটি এভাবে চালান, ./carrot -f prog.carrot input.txt
মূলত শিরোনাম সারি তৈরি করে, তারপরে বাগানের অন্য একটি কক্ষে ডেটা সারি করে (2 ডি টেপ), এবং তাদের একত্রে সংযুক্ত করে।
গাজর 2D টেপে কাজ করে, যার নাম বাগান। বাগানের প্রতিটি কক্ষ তিনটি স্ট্যাক মোড, স্ট্রিং, ফ্লোট, অ্যারে দিয়ে তৈরি। প্রতিটি মোডের জন্য একটি মান রয়েছে, একে "স্ট্যাক" বলা হয় (নোট: মিসনোমার)। এই স্ট্যাকগুলি খালি শুরু হয়। যখন কোনও ঘর একটি নির্দিষ্ট মোডে থাকে, নিম্নলিখিত কমান্ডগুলি এই মোডের সাথে সম্পর্কিত স্ট্যাককে প্রভাবিত করে, উদাহরণস্বরূপ ফ্লোট মোডে, অপারেশনগুলি স্ট্যাক ফ্লোটকে প্রভাবিত করবে। এবং অবশ্যই, মোডগুলির মধ্যে স্যুইচ করার জন্য কমান্ড রয়েছে। মোডগুলি গুরুত্বপূর্ণ কারণ প্রতিটি অপারেটর প্রতিটি মোড এবং প্রতিটি যুক্তির ধরণের জন্য ওভারলোড করা যায়।
এছাড়াও, দুটি অতিরিক্ত মোড রয়েছে (এগুলি কেবল কমান্ডগুলিকে প্রভাবিত করে, সরাসরি স্ট্যাক নয়), সাধারণ মোড এবং ক্যারেট মোড। সাধারণ মোডটি স্বাভাবিকভাবে কাজ করে, যেখানে অপারেটররা যুক্তি গ্রহণ করে এবং সরাসরি স্ট্যাককে প্রভাবিত করে। ক্যারেট মোডে, (প্রায়) প্রতিটি চরিত্রকে আক্ষরিকভাবে একটি স্ট্রিং হিসাবে ব্যাখ্যা করা হয় এবং পরে এটি স্ট্যাকের সাথে সংযোজন / সংযোজন করা হয়। ক্যারেট মোডটি ক্যারেট (সংযোজন) বা ডাউন-ক্যারেটস (প্রিপেন্ড) দিয়ে শুরু / শেষ হয়।
গাজর বাগানের একটি কোষে, স্ট্যাক-স্ট্রিং মোডে এবং ক্যারেট মোডে শুরু হয়।
ক্যারেট-মোডে শুরু করে, স্ট্রিংটি <th>A
প্রাথমিকভাবে খালি স্ট্যাক-স্ট্রিংয়ে যুক্ত করা হয়। তারপরে *
কমান্ডটি অনুসরণ করে যা এটি সদৃশ করে $
, ইনপুট, বার। তারপরে <tr>
ডাউন-ক্যারেট ব্যবহার করে স্ট্যাক-স্ট্রিংয়ে চাপ দেওয়া হয় v
। এটি টেবিলের শিরোনাম সারি তৈরি করে।
ডেটা সারি তৈরি করতে, আমরা শিরোনামটিকে অন্য একটি ঘরে নকল করি। l
আইপিটি ডান ফাঁকা ঘরে সরিয়ে নিয়ে যায় এবং সেলটিতে স্ট্রিংটি বামে +
সংযোজন (^h)
করে (মূলত ডানদিকে ঘরে এটি অনুলিপি করে)। ()
প্রায় একই টেপ সহ একটি সাবশেল, একটি নতুন ক্যারোট প্রোগ্রাম শুরু হয় এবং ^
ক্যারেট-মোডের বাইরে চলে যায় যাতে আমরা h
বাম কক্ষে স্ট্রিংটি পেতে পারি । এটি তখন *
দ্বারা নকল করা হয়($^F- 1)
এটি পরবর্তী ইনপুট বিয়োগ 1, বার ।
এখনও ডান কক্ষে, A
এই ঘরের অ্যারেটিকে তার স্ট্যাক-ট্রাইং বিভাজনে সেট করে "h"
। S
স্ট্যাক অ্যারে দ্বারা যোগ দেয় "d"
এবং স্ট্যাক স্ট্রিংটি এই মানটিতে সেট করে। ডেটা সারি গঠনে A"h"S"d"
সত্যই কেবল h
এস এর সাথে প্রতিস্থাপন d
করে। এখনh
আমরা বাম সূচনা কক্ষে চলে যাই।
এখন আমরা ব্যবহার করে এই ঘরের ডানদিকে ঘরের স্ট্যাক স্ট্রিং যুক্ত করব +(^l)
। যা কিছু অবশিষ্ট রয়েছে তা <table>
ট্যাগ যুক্ত করা, তাই আমরা v
এটি সরবরাহ করে এটি করি।