मेरी जी लाइब्रेरी का उपयोग करें
https://github.com/luser-dr00g/G
यह एक पाठ फ़ाइल है। इसे लोड करने के लिए कम से कम सिंटैक्स के लिए कोई एक्सटेंशन नहीं।
यह इस 203-चार Sierpinksi त्रिकोण कार्यक्रम की अनुमति देता है
[48(0-1+0+1-0)49(11)43(+)45(-)/s{dup
0 eq{exch{[48{1 0 rlineto}49 1 index
43{240 rotate}45{120 rotate}>>exch
get exec}forall}{exch{load
exch 1 sub s}forall}ifelse 1 add}>>begin
9 9 moveto(0-1-1)9 s fill
के रूप में 151 बाइट्स में फिर से लिखना है
3(G)run $
{A - B + A + B - A}
{B B}
{A - B - B}7{[ex{du w{(>K?\2u)$}if}fora]}rep
cvx[/A{3 0 rl}/B 1 in/-{120 rot}/+{-120 rot}>>b
100 200(k?B9)$ showp
टिप्पणियों के साथ workfile
संक्षिप्त प्रणाली नाम सुविधा का उपयोग करना, 1(G)run
लंबे ऑपरेटर नामों के बोझ को पूरी तरह से हटा देता है। एक ऑपरेटर नाम की आवश्यकता है कि उसे दूसरों से अलग करने के लिए केवल लंबा समय हो।
इसलिए
add
हो जाता है ad
mul
हो जाता है mu
index
हो जाता है i
- आदि आदि।
ऑपरेटर नामों के मानक तालिका के लिए PLRM परिशिष्ट F का उपयोग करें ।
और ऑपरेटर स्ट्रिंग्स की सुविधा उपलब्ध है भले ही संक्षिप्त नाम का चयन न किया गया हो। नंगे पुस्तकालय में एक "आधार-स्तर" है जिसे केवल (G)run
आगे की सजावट के साथ जोड़कर चुना गया है ।
आधार स्तर में एक नया फ़ंक्शन शामिल होता है .
जो एक ऑपरेटर के लिए पूर्णांक कोड को स्वीकार करता है (ऊपर उल्लेखित एक ही परिशिष्ट एफ) और इसे निष्पादित करता है।
नया फ़ंक्शन $
एक स्ट्रिंग के माध्यम से पुनरावृत्त करता है और .
प्रत्येक पर कॉल करता है। तो एससीआई कोड सीधे संचालक का चयन करता है।
एक नया फ़ंक्शन @
आपको अंतरिक्ष चरित्र (Ascii 0x20) को 0 के रूप में मानकर परिशिष्ट F में तालिका के नीचे तक पहुंचने देता है।
एक नया फ़ंक्शन #
आपको पहले 95 (0x5F) जोड़कर तालिका में आगे तक पहुंचने देता है, इसलिए अंतरिक्ष वर्ण 0x20 को 127 (0x7F) के रूप में माना जाता है, अंतिम प्रिंट करने योग्य एससीआई चरित्र ~
126 (0x5E) के बाद अगला कोड ।
दो नए फ़ंक्शन !
आपको कई (और ) ऑपरेटरों के थकाऊ अभिव्यक्तियों के बजाय, सूचकांकों / कुंजियों के एक सूचकांक सरणी के साथ सरणियों और / या dicts की एक गहरी नेस्टेड संरचना का उपयोग करने की सुविधा देते हैं ।get
put
(G)run
7 वर्ण बेस-स्तर खरीदता है।
1(G)run
8 वर्ण खरीदता है कि और संक्षिप्त रूप सिस्टम नाम।
3(G)run $
9 वर्ण तुरंत अगली रिक्त रेखा तक एक अंतर्निहित-प्रक्रिया ब्लॉक स्कैनिंग स्रोत लाइनें शुरू करते हैं , और पहली पंक्ति को एक प्रक्रिया के रूप में परिभाषित करते हैं A
, अगली पंक्ति को एक प्रक्रिया के रूप में परिभाषित किया जाता है B
, आदि। इसे def
परिभाषित करने के लिए आवश्यक अधिकांश एस को हटा देना चाहिए। बहुत सारे सामान, उन्हें एक शब्दकोश में लपेटने की आवश्यकता के बिना, और न ही उन्हें स्पष्ट रूप से नाम देने के लिए।