blob: da0a9fc678b2169c03941fa51e265bc3cead21bb (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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
|