Wortel , 77 51 byte
<th>A^*$v<tr>vl+(^h)*($^F- 1)A"h"S"d"h+(^l)v<table>
(Saat mengerjakan ini, saya menemukan bug dengan htidak bekerja dan memperbaikinya)
Memotong beberapa byte dengan memperpendek html serta menggunakan "split, join", bukan "replace"
Cobalah online! , gunakan opsi baris perintah -duntuk melihat AST (Catatan: ini menggunakan penerjemah simpul baru, sehingga versi yang lebih lama di situs web tidak dapat menjalankan ini.)
Program ini mengambil input 0-diindeks dan dalam urutan terbalik, karena sifat aneh Carrot, sehingga 3 2mencetak tabel 3 × 4.
Jalankan program seperti itu, ./carrot -f prog.carrot input.txt
Pada dasarnya membuat baris tajuk, kemudian data baris pada sel lain dari kebun (rekaman 2D), dan menyatukannya bersama-sama.
Wortel bekerja pada pita 2D, yang disebut taman. Setiap sel di taman terdiri dari tiga mode tumpukan, string, float, array. Ada nilai untuk setiap mode, yang disebut "tumpukan" (catatan: keliru). Tumpukan ini mulai kosong. Ketika sel berada pada mode tertentu, perintah berikut akan memengaruhi tumpukan yang sesuai dengan mode ini, misalnya dalam mode float, operasi akan memengaruhi stack float. Dan tentu saja, ada perintah untuk beralih antar mode. Mode ini penting karena setiap operator dapat kelebihan beban untuk setiap mode dan setiap jenis argumen.
Selain itu, ada dua mode tambahan (ini hanya memengaruhi perintah, bukan tumpukan langsung), mode normal dan mode caret. Mode normal berfungsi normal, di mana ada operator yang mengambil argumen dan memengaruhi tumpukan secara langsung. Dalam mode caret, (hampir) setiap karakter ditafsirkan secara harfiah sebagai string, dan kemudian ditambahkan / ditambahkan sesuai dengan tumpukan. Mode caret dimulai / diakhiri dengan caret (append) atau down-caret (prepend).
Wortel dimulai di sel di kebun, dalam mode string-string, dan dalam mode caret.
Dimulai dengan caret-mode, string <th>Aditambahkan ke stack-string yang awalnya kosong. Kemudian ikuti *perintah yang menduplikatnya $, input, kali. Kemudian <tr>ditambahkan ke stack-string oleh penggunaan down-caret v. Ini menciptakan baris tajuk tabel.
Untuk membuat baris data, kami menduplikasi header ke sel lain. lmemindahkan IP ke sel kosong kanan, dan +menambahkan (^h)string dalam sel ke kiri (pada dasarnya menyalinnya ke sel di sebelah kanan). ()memulai subkulit, program Wortel baru dengan rekaman yang hampir sama, dan ^keluar dari mode caret sehingga kita bisa hmendapatkan string di sel kiri. Ini kemudian *digandakan oleh ($^F- 1), input berikutnya minus 1, kali.
Masih di sel kanan, Aatur array sel ini ke tumpukannya "h". Sbergabung dengan array stack dengan "d"dan mengatur string stack ke nilai ini. A"h"S"d"benar-benar hanya mengganti hs dengan ds untuk membentuk baris data. Sekarang hkita pindah ke sel awal yang mulai.
Sekarang kita menambahkan string stack sel ke kanan menggunakan sel ini +(^l). Yang tersisa hanyalah menambahkan <table>tag, jadi kami melakukan ini dengan vmenambahkannya terlebih dahulu.