I just realized we can reduce my original packed 95-stroker:
by two strokes:map$c[$_*=.52,5.5-4.7*cos][8+7.4*sin]=($`%12^$_?o:x)&($'/+5^$ a.$_?o:v125),0..s//<>/e./:/;print"@$_\n"for@c
As you can see from the table below, the "?" character, by pure fluke, is two before "A" in the ASCII table:map$c[$_*=.52,5.5-4.7*cos][8+7.4*sin]=($`%12^$_?o:x)&($'/5^$_ ?o:v125),0..s//<>/e./:/;print"@$_\n"for@c#```
| ord | pack | len | chr |
|---|---|---|---|
| 63 | 31 | ? | |
| 64 | 32 | @ | |
| 65 | 33 | 45 | A |
So we can hijack pack's "?" length byte as part of our ternary expression! Note that we padded the source program with #``` at the end to keep its length at 45, the required multiple of four.
In reply to Re: Compression in Golf: Part I
by eyepopslikeamosquito
in thread Compression in Golf: Part I
by eyepopslikeamosquito
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |