diff options
Diffstat (limited to 'sites/apl.pmikkelsen.com/index.md')
-rw-r--r-- | sites/apl.pmikkelsen.com/index.md | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sites/apl.pmikkelsen.com/index.md b/sites/apl.pmikkelsen.com/index.md new file mode 100644 index 0000000..da0a9fc --- /dev/null +++ b/sites/apl.pmikkelsen.com/index.md @@ -0,0 +1,52 @@ +# 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
\ No newline at end of file |