Rush

Rush भाषा

RushScript का एक छोटा और ईमानदार परिचय, जो Rush के अपने दस्तावेज़ों से लिखा गया है।

Rush क्या है

Rush एक ही बाइनरी में जुड़ी दो चीज़ें है: प्रोसेस रनटाइम और उस पर चलने वाली भाषा RushScript। RushScript व्याख्यायित (interpreted) है: लेखक को अलग से कंपाइल नहीं करना पड़ता।

मान, चर नहीं

Rush में चर (variables) नहीं होते। बाइंड एक लेबल (बिना उद्धरण का नाम) को एक मान से जोड़ता है: port = 8080 लेबल port को संख्या 8080 से जोड़ता है।

port = 8080

हर जगह वर्गाकार कोष्ठक

[ और ] ही एकमात्र समूहन कोष्ठक हैं। इनमें कॉल के आर्गुमेंट, सूची और मैप के लिटरल और समूहित एक्सप्रेशन आते हैं। आर्गुमेंट अल्पविराम से अलग होते हैं: add[10, 20]। पाठ के बाहर गोल कोष्ठक अस्वीकार किए जाते हैं।

add[10, 20]

हर पंक्ति कुछ करती है

एक पंक्ति बाइंड करती है, कॉल करती है या राह तय करती है। जो पंक्ति केवल किसी मान का नाम लेती है, जैसे 5 या x, वह कुछ नहीं करती, इसलिए उसे त्रुटि RX0065 के साथ अस्वीकार किया जाता है।

x = 5
write[x]

त्रुटि RX0065 का पेज देखें

आउटपुट लिखना

write['hello world'] मानक आउटपुट पर छापता है। write.log और write.debug बोलने के दो अन्य प्रकार हैं: पहला सिस्टम का उपयोगकर्ता से बात करना, दूसरा डेवलपर के लिए, जो केवल DEBUG=1 होने पर दिखता है।

write['hello world']

बाइंड और जोड़ी

= किसी नाम को मान से बाइंड करता है; : किसी कुंजी को उसके मान से जोड़ता है। ये दो अलग कर्म हैं, इसलिए दो अलग लिखावटें: cfg = [port: 8080]।

cfg = [port: 8080]

खुद को लागू करने वाले आकार

आकार को नियमों के मैप के रूप में घोषित करें और : से जोड़ें। नियम तोड़ने वाला मान दरवाज़े पर ही अस्वीकार हो जाता है, बाद में पता नहीं चलता।

Banana = [grams: number.real.ge[120].le[180], length_cm: number.real.ge[12].le[25], id: text.uuid]
good   = [grams: 150, length_cm: 18, id: '…']: Banana
bad    = [grams: 999, length_cm: 18, id: '…']: Banana

Validators, बिना import के

ये भाषा में अंतर्निहित हैं, कोई लाइब्रेरी नहीं: email, ipv4, ipv6, uuid, url, iso8601, rfc3339, cpf, cnpj, cep, phone, hex और base64।

ईमानदार स्थिति

Rush का अपना दस्तावेज़ साफ़ कहता है: युवा, तेज़, अभी तैयार नहीं, जान-बूझकर। इस पेज को परिचय की तरह पढ़ें और इंजन के अपने दस्तावेज़ों को प्रमाण मानें।

स्रोत

यह पेज Rush के दस्तावेज़ वृक्ष की निम्न फ़ाइलों से लिखा गया है। केवल वही उदाहरण और नियम लिए गए हैं जो वहाँ दिए हैं। फ़ाइलें अंग्रेज़ी में हैं।

  • /f/dev/rush/README.md (What Rush is: Runtime + Language; Why use rush instead of Python)
  • /f/dev/rush/doc/FLOPS/09_language.md (Values, not variables; Brackets everywhere; A line holds an expression; A key-value pair is key: value; The output verb; The Banana)