लाइब्रेरी


Exercism का उद्देश्य भाषा के सिंटैक्स, मुहावरों और स्टैंडर्ड लाइब्रेरी में प्रवाह सिखाना है। इसमें बाहरी (बिल्ट-इन नहीं) लाइब्रेरी का उल्लेख जान-बूझकर नहीं किया गया है, क्योंकि वह दक्षता के दायरे में आता है। इसलिए ज़रूरी है कि कुछ गिने-चुने अपवादों को छोड़कर हर अभ्यास लाइब्रेरी के बिना हल किया जा सके।

लाइब्रेरी को सपोर्ट करने के कारण

कोई ट्रैक फिर भी लाइब्रेरी को सपोर्ट क्यों करना चाह सकता है, इसके कुछ कारण हैं:

  1. भाषा की स्टैंडर्ड लाइब्रेरी (बहुत) छोटी होती है। ऐसी भाषा का एक उदाहरण Rust है।
  2. लाइब्रेरी टेस्टिंग की सुविधा जोड़ती है। एक उदाहरण वह लाइब्रेरी है जो प्रॉपर्टी-आधारित टेस्टिंग का सपोर्ट जोड़ती है।
  3. कुछ अभ्यास लाइब्रेरी इस्तेमाल किए बिना हल ही नहीं हो सकते। ऐसे ही एक अभ्यास का उदाहरण lens-person अभ्यास है, जिसे ज़्यादातर भाषाओं में लाइब्रेरी के बिना हल नहीं किया जा सकता।

टेस्ट रनर में लाइब्रेरी को सपोर्ट करना

टेस्ट रनर को चलते समय इंटरनेट की सुविधा नहीं होती, इसलिए कोड चलने के समय लाइब्रेरी डाउनलोड करना संभव नहीं है। इस समस्या का एकमात्र हल यही है कि लाइब्रेरी को बिल्ड के समय इंस्टॉल/डाउनलोड किया जाए, जब आपके पास इंटरनेट की सुविधा होती है। व्यवहार में, इसका मतलब है कि लाइब्रेरी को Dockerfile के अंदर ही इंस्टॉल/डाउनलोड करना होगा।

उदाहरण के लिए, Prolog टेस्ट रनर का Dockerfile date_time लाइब्रेरी इंस्टॉल करता है:

RUN swipl pack install date_time -y

डॉक्युमेंटेशन

अगर आपका ट्रैक लाइब्रेरी को सपोर्ट करता है, तो इसका डॉक्युमेंटेशन ट्रैक डॉक्युमेंट में होना चाहिए। कृपया exercises/shared/.docs/help.md डॉक्युमेंट से भी इस डॉक्युमेंट का लिंक (पूरा URL इस्तेमाल करके) दीजिए।