Benutze meine G-Bibliothek
https://github.com/luser-dr00g/G
Es ist eine Textdatei. Keine Erweiterung, um die kürzest mögliche Syntax zu laden.
Es erlaubt dieses 203-Zeichen-Sierpinksi-Dreieck-Programm
[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
umzuschreiben in 151 Bytes als
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
Arbeitsdatei mit Kommentaren
Durch die Verwendung der Funktion für abgekürzte Systemnamen 1(G)run
entfällt die Belastung durch lange Bedienernamen vollständig. Ein Bedienername muss nur lang genug sein, um ihn von den anderen zu unterscheiden.
So
add
wird ad
mul
wird mu
index
wird i
- usw. usw.
Verwenden Sie den PLRM- Anhang F für die Standardtabelle der Bedienernamen.
Die Funktion von Operator Strings ist auch dann verfügbar, wenn die abgekürzten Namen nicht ausgewählt sind. Die nackte Bibliothek hat eine "Basisebene", die durch einfaches Hinzufügen (G)run
ohne weitere Dekorationen ausgewählt wird.
Die Basisebene enthält eine neue Funktion, .
die den Integer-Code für einen Operator akzeptiert (derselbe oben erwähnte Anhang F) und ihn ausführt.
Die neue Funktion $
durchläuft eine Zeichenfolge und ruft .
jede auf. Der ASCII-Code wählt den Bediener also direkt nach seiner Nummer aus.
Mit einer neuen Funktion @
können Sie bis zum Ende der Tabelle in Anhang F vordringen, indem Sie das Leerzeichen (ASCII 0x20) als 0 behandeln.
Mit einer neuen Funktion #
können Sie weiter in die Tabelle vordringen, indem Sie zuerst 95 (0x5F) hinzufügen, sodass das Leerzeichen 0x20 als 127 (0x7F) behandelt wird, der nächste Code nach dem letzten druckbaren ASCII-Zeichen ~
126 (0x7E).
Mit zwei neuen Funktionen !
können Sie auf eine tief verschachtelte Struktur von Arrays und / oder Dikten mit einem Indexarray von Indizes / Schlüsseln zugreifen , statt auf langwierige Ausdrücke vieler get
(und put
) Operatoren.
(G)run
7 Zeichen kauft das Basislevel.
1(G)run
8 Zeichen kaufen diese UND abgekürzten Systemnamen.
3(G)run $
Mit 9 Zeichen beginnt eine implizite Prozedur sofort damit, die Quellzeilen bis zur nächsten leeren Zeile abzusuchen und die erste Zeile als aufgerufene Prozedur A
, die nächste Zeile als aufgerufene Prozedur B
usw. zu definieren . Dadurch sollten die meisten def
zum Definieren erforderlichen s entfernt werden viele Dinge, ohne sie in ein Wörterbuch einwickeln zu müssen oder ihnen sogar explizit Namen zu geben.