"Learn APL" Notes

(luksamuk.codes)

36 points | by todsacerdoti 12 hours ago

3 comments

  • smartmic 11 hours ago
    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...
  • throwaway81523 1 hour ago
    Old RMS song, to the tune of "row row row your boat":

    Rho, rho, rho of x, always equals 1

    Rho's dimension, rho rho rank; APL is fun!

  • mmooss 11 hours ago
    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?
    • 7thaccount 10 hours ago
      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.
    • dzaima 11 hours ago
      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.

    • electroly 10 hours ago
      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.

      https://aplwiki.com/wiki/Overstrike