"Learn APL" Notes
10 comments
·October 25, 2025smartmic
turtleyacht
Thank-you. Any thoughts on the layout below versus the others listed?
https://www.pckeyboard.com/page/product/USAPLSET
I've got some notes on setting up input on OpenBSD as well. It enables Left Ctrl and Left Alt for APL symbols, but also a Unicode escape hatch with Right Alt and Caps Lock: https://github.com/turtleyacht/ap-el-kb.github.io
ofalkaed
It looks to be the standard Dyalog APL keyset, which will be just fine for GnuAPL and most if not all APLs but not all languages of the APL family.
mmooss
APL was developed in the 1960s. Between then and whenever its symbols were added to Unicode (U+2336 and following, at least), how were its symbols encoded?
null
7thaccount
Early on, the selectric typewriter thing had a spherical ball that could rotate to stamp the characters. So when you typed a key the IBM hardware would type a character on a piece of paper exactly like a typewriter and also the IBM computer would keep track of this and when you ran the expression it would calculate the result and print that out as well. You can see videos of this.
electroly
I believe it depends on the era and system, but there were various APL codepages (i.e. definitions for the upper 128 characters) for both EBCDIC and ASCII.
https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbol...
In the very earliest IBM Selectric teletype-based systems, some APL symbols were constructed by entering one character, hitting backspace, and overstriking a second character. For instance, ⍋ is | overstruck on ∆. It's why a lot of APL symbols look like that.
dzaima
Custom encodings, as was standard (or, well, mandatory) before Unicode (1991). Hell, Dyalog APL to this day supports its classic 1-byte-per-char encoding (not even ASCII-compatible! Nor EBCDIC!) in addition to Unicode.
Looks like the APL chars were added in Uncicode 1.1 (1993), two years after 1.0, which is quick enough.
I worked with GNU APL for a while and really liked it. It's also possible to extend it with the C foreign function interface (FFI). The best way I found to input the APL2 symbols with my normal keyboard was with a customized XCompose definition where the input chords are mnemonics of the actual symbols: https://gist.github.com/smartmic/cdb8b0b3936ab965213748813b6...