Scarp source modules
पूरी compiler-verified guide: Modules, public API और static inspection में alpha.1 की तीन फ़ाइलें, alpha.2 के public/private symbols, JSON schema और E0041/E0039 के वास्तविक diagnostic examples हैं।
v0.0.5-alpha.1 से .srp फ़ाइलें अन्य फ़ाइलों के public symbols उपयोग कर सकती हैं।
नए प्रकाशित v0.0.5-alpha.2 में: सीमित compile-time scalar constant expressions और scarp modules से static import/metadata inspection उपलब्ध हैं। नए ट्यूटोरियल में import की तीन फ़ाइलें तथा सही stdout हैं। नीचे दिया मूल alpha.1 विवरण केवल literal module constants के लिए है।
मॉड्यूल आयात
import "libraries/math.srp" as math;
print(math.twice(math.factor));
import को फ़ाइल-स्तर पर लिखें और as से alias दें। उपयोग alias.member के रूप में होता है; wildcard import या implicit global lookup नहीं है।
लाइब्रेरी क्या export कर सकती है?
pub pure funcra फ़ंक्शन और pub bind immutable scalar literal constants export होते हैं। अन्य declarations private हैं। Library की top level पर print, loops, mutable bindings, vector/tile constants, computed initializers या कोई runtime initialization नहीं। ऐसी गणना फ़ंक्शन में रखें।
पथ और सुरक्षा नियम
Import path importing फ़ाइल के relative होता है। / separators और .srp suffix प्रयोग करें। Absolute path, root से बाहर जाने वाला .., network URL या चक्रीय import निषिद्ध हैं। Import graph size की अलग सीमाएँ हैं। पूरा मॉड्यूल ट्यूटोरियल और source-loading सुरक्षा देखें।
अंग्रेज़ी संदर्भ के अपरिवर्तित कोड उदाहरण
नीचे दिए गए code snippets मूल अंग्रेज़ी संदर्भ से लिए गए हैं। Keywords, source strings और output expectations जानबूझकर अनुवादित नहीं किए गए हैं।
import "modules/settings.srp" as settings;
print(settings.title);
pub bind title = "Modular inference";
pub bind gain = 1.0;