ใช้ห้องสมุด G ของฉัน
https://github.com/luser-dr00g/G
มันเป็นไฟล์ข้อความ ไม่มีส่วนขยายสำหรับไวยากรณ์ที่สั้นที่สุดที่เป็นไปได้ในการโหลด
อนุญาตให้โปรแกรมสามเหลี่ยม Sierpinksi 203-char นี้
[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 bytes เป็น
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 สำหรับตารางชื่อผู้ดำเนินการมาตรฐาน
และคุณสมบัติของ Operator Strings จะสามารถใช้งานได้แม้ว่าจะไม่ได้เลือกชื่อย่อ ไลบรารีเปล่ามีการเลือก "ระดับฐาน" โดยเพิ่มอย่างง่าย ๆ(G)run
โดยไม่มีการตกแต่งเพิ่มเติม
ระดับฐานรวมถึงฟังก์ชั่นใหม่ .
ที่ยอมรับรหัสจำนวนเต็มสำหรับผู้ประกอบการ (ภาคผนวก F เดียวกันที่กล่าวถึงข้างต้น) และดำเนินการมัน
ฟังก์ชั่นใหม่$
วนซ้ำผ่านสตริงและการเรียก.
แต่ละอัน ดังนั้นรหัส ascii จะเลือกผู้ให้บริการโดยตรงตามหมายเลข
ฟังก์ชั่นใหม่ @
ช่วยให้คุณเอื้อมถึงด้านล่างของตารางในภาคผนวก F โดยปฏิบัติกับอักขระช่องว่าง (Ascii 0x20) เป็น 0
ฟังก์ชั่นใหม่#
ช่วยให้คุณสามารถเข้าถึงเพิ่มเติมในตารางได้โดยการเพิ่ม 95 (0x5F) ก่อนดังนั้น space char 0x20 จะถือว่าเป็น 127 (0x7F) ซึ่งเป็นรหัสถัดไปหลังจากตัวอักษร ascii สุดท้ายที่พิมพ์ได้~
126 (0x7E)
ฟังก์ชั่นใหม่สองฟังก์ชั่นใหม่!
ช่วยให้คุณเข้าถึงโครงสร้างของอาร์เรย์และ / หรือ dicts ที่ลึกล้ำด้วยอาร์เรย์ดัชนีของดัชนี / คีย์มากกว่าการแสดงออกที่น่าเบื่อของผู้ประกอบการget
(และput
) หลายคน
(G)run
7 ตัวอักษรซื้อระดับฐาน
1(G)run
8 ตัวอักษรซื้อและชื่อระบบย่อ
3(G)run $
9 ตัวอักษรเริ่มต้นทันทีบรรทัดการสแกนบล็อกโดยนัยจนกระทั่งบรรทัดว่างถัดไปและกำหนดบรรทัดแรกเป็นโพรซีเดอร์ที่เรียกว่าA
บรรทัดถัดไปจะถูกกำหนดเป็นโพรซีเดอร์ที่เรียกว่าB
เป็นต้นซึ่งควรลบส่วนที่def
จำเป็นสำหรับการกำหนด มีสิ่งต่าง ๆ มากมายโดยไม่จำเป็นต้องห่อไว้ในพจนานุกรมหรือแม้แต่ตั้งชื่อให้พวกเขาอย่างชัดเจน