# Introduction 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][1]. 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 ☺. # Features * Dfns work, but the error guards are not implemented yet * Function trains * Most primitive functions from [Dyalog APL][1] * Some of the primitive operators from [Dyalog APL][1] * Box printing (by default) For more information, see [Implementation Status](/implementation-status). # Notable differences from Dyalog APL * No bracket axis * No bracket indexing * No tradfn syntax * No complex numbers (might change later) * `⍺⍺` is changed to `⍶` * `⍵⍵` is changed to `⍹` * Outer product `∘.` is changed to `⌾` * Dop self reference `∇∇` is changed to `∆` and `⍙` for monadic and dyadic operators respectively # Installation Installation is as simple as cloning and running `mk`. git/clone https://git.sr.ht/~pmikkelsen/APL9 cd APL9 mk % 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). I haven't yet figured out a good way to type the APL glyphs on 9front, so you have to come up with something on your own. And remember to use a font that can display the glyphs! # Screenshot [![A picture of APL9 in action][2]][2] [2]: /_images/screenshot.png [1]: https://dyalog.com