APL Notes: •ReBQN

•ReBQN

The official documentation describes it well, though more information about its 𝕩 namespace is provided by the spec. But, it's easy to gloss over what's read. I've also had people gloss over my words when discussing •ReBQN: "oh, it's just eval()" or "oh, it's just a way to add new primitives". What •ReBQN does is create interpreters for BQN-like languages - with custom primitives and system values, and optional state.

So you can use it as eval() with a controlled environment. Or you can write all of your Advent of Code submissions in a very slightly modified dialect of BQN that has an A* primitive. Or you can experiment with your own APL with your own hieroglyphics, as long as it shares BQN's grammar.

There are some subtle points: