User:Dan Bron/Pretix/Tacit
puzzle
This page gives a solution to the puzzle posed at pretix: that is, it gives an entirely tacit pretix.
solution
13!:8]55
details
The foreign 13!:8 is named signal and it provides the facility to raise errors in J. Its domain is }.i.256 but is typically restricted to 1+i.#9!:8'', the standard J error codes. Custom codes are generally not required, because extra information can be carried by its left argument, the error text.
However, there is one "standard J error code" not covered by 9!:8: throw.. The control word throw. raises an error, but it has no associated error text; and it can only be detected by a catcht. block. If a throw. occurs without an associated catcht., no error is printed, and execution terminates (returns to immex).
Therefore throw. is not included among 9!:8, but 13!:8 still provides a way to signal this error.
So the undocumented 13!:8]55 is identical to 3 : 'throw.' 0. Like other 55s, is has a special effect which warrants care (cf. 1!:55, 2!:55, 4!:55, 18!:55). The mnemonic is that 255 is the last value of a byte, and so a 55 is the last thing you want to do (usually).