गाजर , 77 51 बाइट्स
<th>A^*$v<tr>vl+(^h)*($^F- 1)A"h"S"d"h+(^l)v<table>
(इस पर काम करते समय, मैंने h
काम न करने के साथ एक बग की खोज की और इसे ठीक किया)
HTML को छोटा करने के साथ-साथ "स्प्लिट" के बजाय "स्प्लिट, ज्वाइन" का उपयोग करके कुछ बाइट्स को गोल्फ में शामिल करें
इसे ऑनलाइन आज़माएं! कमांड लाइन विकल्प का उपयोग करें-d
एएसटी देखने के लिए का उपयोग करें (नोट: यह नए नोड दुभाषिया का उपयोग करता है, इसलिए वेबसाइट पर पुराना संस्करण इसे नहीं चला सकता है।)
यह कार्यक्रम गाजर की अजीब प्रकृति के कारण इनपुट 0-अनुक्रमित और उलटा क्रम में लेता है, इस प्रकार 3 2
3 × 4 तालिका को प्रिंट करता है।
प्रोग्राम को ऐसे चलाएं, ./carrot -f prog.carrot input.txt
मूल रूप से हेडर पंक्ति बनाता है, फिर बगीचे के एक और सेल (2 डी टेप) पर डेटा पंक्तियाँ, और उन्हें एक साथ मिलाता है।
गाजर एक 2 डी टेप पर काम करता है, जिसे एक बगीचे कहा जाता है। बगीचे की प्रत्येक कोशिका तीन स्टैक मोड्स, स्ट्रिंग, फ्लोट, ऐरे से बनी है। प्रत्येक मोड के लिए एक मूल्य है, जिसे "स्टैक" (नोट: मिसनोमर) कहा जाता है। ये ढेर खाली होने लगते हैं। जब एक सेल एक विशेष मोड पर होता है, तो निम्न कमांड इस मोड से मेल खाते स्टैक को प्रभावित करेगा, उदाहरण के लिए फ्लोट मोड में, संचालन स्टैक फ्लोट को प्रभावित करेगा। और हां, मोड के बीच स्विच करने के लिए कमांड हैं। मोड महत्वपूर्ण हैं क्योंकि प्रत्येक ऑपरेटर प्रत्येक मोड और प्रत्येक तर्क प्रकार के लिए अतिभारित हो सकता है।
इसके अलावा, दो अतिरिक्त मोड हैं (ये केवल कमांड को प्रभावित करते हैं, सीधे स्टैक को नहीं), सामान्य मोड और कैरेट मोड। सामान्य मोड सामान्य रूप से काम करता है, जहां ऑपरेटर तर्क में लेते हैं और स्टैक को सीधे प्रभावित करते हैं। कैरेट मोड में, (लगभग) प्रत्येक वर्ण की शाब्दिक रूप से एक स्ट्रिंग के रूप में व्याख्या की जाती है, और बाद में स्टैक के अनुसार पूर्वनिर्मित / जोड़ा जाता है। कैरेट मोड को शुरू किया गया है / करियर (एपेंड) या डाउन-केयर (प्रीपेन्ड) के साथ समाप्त किया गया है।
गाजर बगीचे में एक सेल में, स्टैक-स्ट्रिंग मोड में और कैरेट मोड में शुरू होता है।
कैरेट-मोड में शुरुआत, स्ट्रिंग <th>A
को शुरू में खाली स्टैक-स्ट्रिंग में जोड़ा जाता है। फिर उस *
आदेश का अनुसरण करता है जो इसे डुप्लिकेट करता है $
, इनपुट, समय। फिर <tr>
डाउन-कैरेट के उपयोग से स्टैक-स्ट्रिंग को तैयार किया जाता है v
। यह तालिका की हेडर पंक्ति बनाता है।
डेटा पंक्तियों को बनाने के लिए, हम हेडर को किसी अन्य सेल में डुप्लिकेट करते हैं। l
IP को दाईं ओर खाली सेल में ले जाता है, और सेल में स्ट्रिंग को बाईं ओर +
जोड़ता (^h)
है (अनिवार्य रूप से इसे दाईं ओर सेल में कॉपी करता है)। ()
एक उपखंड, लगभग एक ही टेप के साथ एक नया गाजर कार्यक्रम शुरू करता है, और ^
कैरट-मोड से बाहर निकलता है ताकि हम h
बाएं सेल में स्ट्रिंग प्राप्त कर सकें। इसके बाद , अगले इनपुट माइनस 1, बार *
द्वारा डुप्लिकेट किया जाता ($^F- 1)
है।
अभी भी सही सेल में, A
इस सेल के एरे को इसके स्टैक- ट्रिंग स्प्लिट द्वारा सेट करता है "h"
। S
स्टैक ऐरे से जुड़ता है "d"
और स्टैक स्ट्रिंग को इस मान पर सेट करता है। A"h"S"d"
वास्तव में सिर्फ डेटा पंक्तियों को बनाने के लिए h
s के साथ d
s को प्रतिस्थापित करता है । अब h
हम बाईं ओर के आरंभिक कक्ष में जाते हैं।
अब हम सेल के स्टैक स्ट्रिंग को इस सेल के दाईं ओर प्रयोग करते हैं +(^l)
। जो कुछ शेष है वह <table>
टैग जोड़ने के लिए है, इसलिए हम v
इसे पहले से बताकर करते हैं।