APL9 An APL for Plan 9


This is the website for APL9, which is an APL implementation written in C on and for Plan 9 (9front specifically, but the other versions should work as well).

Work started in January 2022, when I wanted to do some APL programming on 9front, but no implementation existed. The focus has been on adding features and behaving (on most points) like Dyalog APL. Speed is poor, since many primitives are implemented in terms of each other, which is not optimal, but it helped me implement stuff easier.

Note: development is still very much on-going. Some primitives may be implemented wrong at this point, since it can be hard to implement them without ever having used them ☺.


For more information, see Implementation Status.

Notable differences from Dyalog APL


Installation is as simple as cloning and running mk.

git/clone https://git.sr.ht/~pmikkelsen/APL9
cd APL9
% set the BIN environment variable if
% you don't want it to install globally
mk install

The resulting binary is installed as apl. At the time of writing, it doesn't take command line arguments (apart from -t and -m for debugging).

Remember to use a font that can display the glyphs! To be able to write the apl glyphs, a small script is provided with the name aplkeys which works on 9front. Usage is as follows:

% Say my normal kbmap is called dk, but I want to be able to write APL symbols
aplkeys dk

The layout is mostly as the one on X11 on linux, but the way to access the symbols are different. In order to get the "normal" layer, such as ⍺⍳⍵∊* and so on, hold down Mod4 (the windows key) while typing (in this case, typing aiwep). To access the other layer, hold down Mod4 and Alt-gr at the same time, to get ⍶⍸⍹⍷⍣ and so on. Please email me if you have questions about this.


A picture of APL9 in action