7
\$\begingroup\$

The golfing language Jelly has a very complex and clever string compression system which I'm not going to go into depth about here. You can find a very good explanation here.

Basically, Jelly's string literals are represented as “...», where ... is a string of characters from Jelly's codepage that is decoded into a base-250 integer before being decoded into a string which can contain both words and printable ASCII characters.

Your challenge is to find a string that, when decompressed in Jelly, represents itself. For example, if xxx is your string, “xxx» must return xxx to be valid.

You can test ideas here, or just download Jelly and use the sss function.

Scoring

The shortest submission in bytes (not counting and ») wins. I'll happily accept a proof of impossibility, although it seems unlikely.

I've tested that there are no 1-or-2-byters, but there might still be a trivial one that is a single word.

Tips, notes and ideas

  • Compressing ASCII characters is actually less effective than just using an ordinary string, so with enough, you'll have space to fit an extra word.
  • You'll have to use printable ASCII (+ newlines) because nothing decompresses into characters that aren't those.
  • There might be trivial solutions of 1-2 short words.

The empty string is not a valid solution. The string must be one single string - that is, you can't just escape the string and output it some other way.

\$\endgroup\$
3
  • \$\begingroup\$ You should probably specify that the "string" can't contain extra or », so answers don't just escape the string and write a normal quine \$\endgroup\$
    – pxeger
    Sep 12 at 6:14
  • \$\begingroup\$ I suspect there is no such quine. xxx would have to contain only ascii characters + pilcrow, as non-ascii can't be compressed. As all the words in Jelly's dictionary are longer than the 2-2.5 bytes required to compress them, we can't have the string ever look up a word, it can only decompress as characters. It might be possible to find a string that decompresses to itself that only uses the characters, but I doubt it (I'll take a proper go at proving it doesn't later) \$\endgroup\$ Sep 12 at 7:42
  • 3
    \$\begingroup\$ I’m also skeptical, but a simple length argument doesn’t suffice; there are strings that decompress to shorter strings, using the 2-letter words in the short dictionary with flags. \$\endgroup\$ Sep 12 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.