User:Dan Bron/Pretix/Tacit

From J Wiki
Jump to: navigation, search


This page gives a solution to the puzzle posed at pretix: that is, it gives an entirely tacit pretix.




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).

see also

The documentation for throw. and catcht. .