G kitaplığımı kullan
https://github.com/luser-dr00g/G
Bir metin dosyası. Yüklemek için mümkün olan en kısa sözdizimi için uzantı yok.
Bu 203 karakterlik Sierpinksi Üçgen programına izin verir
[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 bayt olarak yeniden yazılacak
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
yorumlarla çalışma dosyası
Kısaltılmış sistem adları özelliğini kullanarak, 1(G)run
uzun operatör adlarının yükünü tamamen ortadan kaldırır. Bir operatör adının yalnızca diğerlerinden ayırt edilebilmesi için yeterince uzun olması gerekir.
Yani
add
olur ad
mul
olur mu
index
olur i
- vs vs.
Standart operatör adları tablosu için PLRM Ek F'yi kullanın .
Kısaltılmış adlar seçilmemiş olsa bile Operatör Dizeleri özelliği kullanılabilir. Çıplak kütüphanede, (G)run
başka süslemeler olmadan basitçe seçilen bir "taban seviyesi" vardır .
Temel seviye, .
bir operatör için tamsayı kodunu kabul eden (yukarıda belirtilen aynı Ek F) yeni bir fonksiyon içerir ve onu çalıştırır.
Yeni işlev $
bir dize üzerinden yinelenir ve .
her birini çağırır . Böylece ascii kodu operatörü numaraya göre doğrudan seçer.
Yeni bir işlev @
, boşluk karakterine (Ascii 0x20) 0 olarak davranarak Ek F'deki tablonun altına inmenizi sağlar.
Yeni bir işlev #
önce 95 (0x5F) ekleyerek tabloya daha fazla erişmenizi sağlar, böylece 0x20 boşluk karakteri 127 (0x7F) olarak ele alınır, son yazdırılabilir ascii karakteri ~
126'dan (0x7E) sonraki kod .
İki yeni işlev , birçok (ve ) operatörün sıkıcı ifadelerinden ziyade, dizin ve anahtarların !
bir dizi diziniyle derinden iç içe dizilerin ve / veya dikmelerin yapısına erişmenizi sağlar .get
put
(G)run
7 karakter taban seviyesini satın alır.
1(G)run
8 karakter satın alır VE sistem adlarını kısaltır.
3(G)run $
9 karakter hemen başlar blok örtülü-prosedürü tarama kaynakları hatları sonraki boş satır ve adı verilen bir işlem olarak birinci çizgi tanımlaması kadar A
, bir sonraki hat olarak adlandırılan bir yöntem olarak tanımlanır B
en Bu çıkarmak gerekir, vb def
tanımlamak için gerekli olan s bunları bir sözlüğe sarmaya gerek kalmadan ve hatta açıkça ad vermeden birçok şey.