charset: \013456
\043\1333311\05313311\0531133\135\133\043\13311\0534011\0534031\135\133\043\1331343\05311354\135\13331\05341\054101\0544\053104\0544\053104\054111\05444\0541\05331\05443\05344\054111\054114\0544\053104\054100\05433\135\135\135\046\1330\133\1330\0540\135\135\133\116\141\155\145\163\133\135\133\133\043\135\135\135\046\135
Try it online!
I feel it's best to try to explain this one. First, Mathematica allows character inputs with octal triplets (From this point on, I'll be using my local copy), after decoding, looks like so
#[1000+31111][#[3304+11135][#[10000+13003][31+41,101,4+104,4+104,111,44,1+31,43+44,111,114,4+104,100,33]]]&[0[[0,0]][Names[][[#]]]&]
All of the addition is just to avoid getting a 2, 7, 8, or 9, which in octal have 2s and 7s, which are trivially avoidable, all the other characters are the minimum needed to get Names[]
. When the actual functions are shown,
Print[FromCharacterCode[List[72,101,108,108,111,44,32,87,111,114,108,100,33]]]
Where all the functions are hidden inside a Names[][[1234]]
so that they can all be numerically decided, but Names[]
, at minimum, needs \13456
to derive everything else, the 0 is needed to turn Names's string output into Functions, as 0[[0,0]]
returns Symbol
.
I know that after making this whole thing it can be golfed to do without 0, as the only time it comes up is in addition, inside the octal for the +
symbol, and getting the symbol header, meaning that if 0 can be derived elsewhere then in the charset 0 can be switched to +, lowering the score by 5. All it would need is to not use commas inside list. The only function that I recall that can do this is the Append family, but calling Append instead of each comma makes the program over 2k in size.
In case you want to see how it was generated, I will put most of my code here
exc="%
(which would have a score of452
), but it would be insanely long without newline. \$\endgroup\$exc%'(1+)
, no newline. CJam can do it in just 3:')~
. \$\endgroup\$