GolfText

From Esolang
Jump to navigation Jump to search

GolfText is an esolang invented by User:None1, it is an esolang designed to output repetitive text using shorter code..

Syntax

It is just text, but LZMA compressed!

Examples

99 bottles of beer

FD 37 7A 58 5A 00 00 04 E6 D6 B4 46 02 00 21 01 16 00 00 00 74 2F E5 A3 E0 2E 6B 01 DE 5D 00 1C E0 7C C4 6F 3A 26 B2 05 C8 64 C0 2A 13 9D 16 6E 79 5C 30 78 26 82 3B 39 29 97 B9 56 FB C8 B6 C3 50 CE 24 8E 10 71 A7 CB 6E 24 AB 42 A2 54 BB E0 A8 BE 43 AD 25 D6 57 DD 96 7A 25 8B 80 7B 20 B4 CE BA 00 A9 91 8A E3 E3 EE D4 E2 3B B8 58 56 EF E1 26 7F 9A 41 5E 5C A2 72 13 FC F0 AD F0 89 C5 60 57 78 7E C1 FE 36 20 20 3A 8A F3 C1 8B 3C C3 6C 43 F0 43 07 EE D8 89 38 66 31 14 4D E9 BB 22 D2 00 D5 00 DF AA E3 B7 C6 ED A8 DA 60 C7 AD 0E 34 96 D5 DF 64 5D E0 BA 1A 20 2C 60 94 F9 10 3F C8 64 A1 70 D4 C0 01 D3 D8 62 37 4C 5D 49 18 D1 7D 84 D3 0C 12 34 BB 78 61 A1 B3 54 55 99 4D AA AB 8A 87 21 77 DA EF 7E E0 25 D5 EC 84 C4 BA 56 F0 84 0D 8F C4 90 23 D4 50 63 50 82 8B 8B FA 62 87 C9 0B 9C DA C4 5B 11 28 3F 9D D5 92 63 01 A3 7D 18 17 46 84 71 F0 E5 F5 C3 89 99 E5 CD 9D 9B 34 29 C1 75 5F D5 71 39 C9 C6 61 26 F8 99 21 7C 3B 09 39 5D D2 05 6A 03 32 C7 3A DB E8 01 59 22 BE 74 07 DD 21 F8 13 B1 D9 0A 38 9B D0 BC 6A AC 22 CC 65 BD B8 DB DD 03 D8 63 65 4F 06 53 87 50 C0 4B E4 37 A1 E0 F1 9D BB 0D 5D 59 8F 31 22 A3 1F 40 02 45 F3 9C 15 6A 06 08 2A AA 40 CE 6F 0C 82 2F 58 5B 6C 12 8C 37 9C ED 91 7D E4 75 D1 93 45 31 41 5D 59 FD 7A DE 84 D2 2A 5A 31 D9 2E 29 B7 0E 0D 9F 98 FC DB 05 B8 86 0A 6D 75 5F 54 DB A1 23 B6 B3 56 CC CA 42 85 C9 5A 1D AF 26 C6 19 C2 78 E4 81 44 3E 06 01 11 FA F4 C1 B9 5F 5C 00 30 BC DB 99 15 8F 54 C7 62 D6 D8 CB CB 50 51 35 B7 90 BD 27 4B EC F7 A4 07 72 10 C5 96 3D BB FC FA 4B 95 E8 6F BB 68 12 E7 35 1B E4 B0 00 00 00 91 18 8B 3E DC 08 B0 04 00 01 FA 03 EC 5C 00 00 26 BD F3 C9 B1 C4 67 FB 02 00 00 00 00 04 59 5A

in hex dump.

Original text: 11884B

In GolfText: 544B

Compression rate: 4.6%

FizzBuzz

FD 37 7A 58 5A 00 00 04 E6 D6 B4 46 02 00 21 01 16 00 00 00 74 2F E5 A3 E0 01 9B 00 81 5D 00 18 82 82 8F 23 5F 18 6D 57 4D 6B 8E 30 C5 FD 10 03 6F 05 C5 64 CD E5 0A 1E 23 0A 19 4B 9A DE E8 B1 0D 7B 96 1F AD 33 25 18 B4 7A 1D 19 75 85 DE 4B 58 8F B5 75 60 D5 46 69 F7 9C 4E 0B B4 49 7C 37 A1 16 C2 CE 90 BB FC 02 ED D7 E7 E7 45 6C 36 44 0B F7 84 30 62 4D BB 29 D9 65 AC AD 84 B9 2E 7B 2B 2D D1 A9 80 DB 36 72 7D D4 7D DB 77 06 CE 91 A7 EB 2F 64 61 18 FD 6E 28 BF D1 CE 68 79 E0 A0 00 00 00 00 35 AD 7D EA AB 42 54 56 00 01 9D 01 9C 03 00 00 B5 18 1D AA B1 C4 67 FB 02 00 00 00 00 04 59 5A

Original text: 412B

In GolfText: 192B

Compression rate: 46.6%

Hello, World!

FD 37 7A 58 5A 00 00 04 E6 D6 B4 46 02 00 21 01 16 00 00 00 74 2F E5 A3 01 00 0C 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 00 00 00 00 2C 7B 64 5C F0 33 06 28 00 01 25 0D 71 19 C4 B6 1F B6 F3 7D 01 00 00 00 00 04 59 5A

Original text: 13B

In GolfText: 72B

Compression rate: 553.8%

Yes, sometimes programs in GolfText are longer than in text, this is inevitable in any compression algorithm.

Error Quine

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "yourpath\lzma.py", line 343, in decompress
    res = decomp.decompress(data)
          ^^^^^^^^^^^^^^^^^^^^^^^
_lzma.LZMAError: Input format not supported by decoder

Replace yourpath with your Python lib path, only works when the python interpreter is executed in a python REPL.

NOP

FD 37 7A 58 5A 00 00 04 E6 D6 B4 46 00 00 00 00 1C DF 44 21 1F B6 F3 7D 01 00 00 00 00 04 59 5A

Original text: 0B

In GolfText: 32B

Compression rate: ∞%

Note: an empty program isn't a NOP in this esolang!

Never gonna give you up

FD 37 7A 58 5A 00 00 04 E6 D6 B4 46 02 00 21 01 16 00 00 00 74 2F E5 A3 E0 06 EE 01 91 5D 00 2B 99 40 E7 23 63 02 C7 00 1C 5F 1B BA EB 0A B5 B7 1E 5B 18 DC CE 03 F7 0A F2 11 21 8C E8 9C 0A 03 DB 51 E9 46 F3 A8 5B 9B D0 36 0D F5 59 08 8E EA 6D B3 12 C6 5C B2 F7 30 CD 1E 12 B7 72 F4 2B D4 9E 3D FE 6E 93 14 A1 DD 39 97 46 99 07 67 A0 AF D7 A7 A4 7F 5A 2B 04 E9 47 E8 95 A6 01 43 A0 62 11 AB 32 60 0E 23 C9 37 82 CD 20 C6 CE EA 9E 1F 0E B0 71 49 96 FA 9F 44 27 9E 53 57 60 A7 DF E3 AE B8 E6 BE B4 B6 1C 18 F4 3E 39 76 A5 38 B2 5A B8 56 D9 FC 7B 0D D6 D4 EE 1A 36 01 F9 9D 3A 9E CC 9A 93 9D B9 BA 4D 60 77 E3 E2 94 3D EC 42 B8 2E 47 F9 90 8C F3 33 CB 8E C0 5F E9 A5 02 50 2C 51 73 02 51 C3 76 08 9D 4C 09 6C 89 94 D0 21 F7 A6 D4 11 3D AB 5D BF 03 C9 6D C0 B7 95 58 69 6E 4E 1A 05 F7 EB 57 65 EB 26 BD 18 CB 3D 61 F0 FE CF A3 46 EF 52 17 1E EE 6E 6F 4A EC DC 59 AF 40 66 84 C8 40 3B 3A 8C 01 6E DA 49 B6 51 9F 03 48 04 48 7A 5E D9 07 40 3B C1 A4 CB DA 6E 5D 35 8C 6D 9C 6B 34 70 63 00 99 8A 2D 00 55 7D 33 9B 2E 96 55 B8 AC 96 13 C5 FD A3 FC 32 44 2F A7 F8 81 C6 7F 63 5B B8 73 33 04 A2 26 93 13 A4 72 AA C7 60 76 C1 60 E8 84 93 8F 82 A5 C4 79 9C 54 55 8C 68 76 68 B9 77 51 B0 22 26 02 69 D8 61 6F FE 3F 33 01 60 E2 C5 51 78 CE D5 0A C3 95 24 75 1C 83 76 AA F8 68 9B D0 FE 70 EB AE CF 53 96 F1 20 00 00 00 00 00 1F D6 05 A4 54 8A 9C 0B 00 01 AD 03 EF 0D 00 00 00 6E B3 A7 B1 C4 67 FB 02 00 00 00 00 04 59 5A

Original text: 1775B

In GolfText: 468B

Compression rate: 26.4%

Interpreters

Python

import lzma
print(lzma.decompress(input().encode()).decode())

Another one accepting hex dump as input:

import lzma
print(lzma.decompress(bytes([int(i,16) for i in input().split()])).decode())

Usability

Despite its advantage in printing repetitive text, GolfText is very unusable as it can only do one sort of thing: printing stuff.