summaryrefslogtreecommitdiff
path: root/sites/apl.pmikkelsen.com/index.md
diff options
context:
space:
mode:
Diffstat (limited to 'sites/apl.pmikkelsen.com/index.md')
-rw-r--r--sites/apl.pmikkelsen.com/index.md52
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