[comp.lang.apl] Iverson APL Keywords

Pesch@cup.portal.com (Roland Henry Pesch) (12/27/88)

Here at last, as offered some time ago, are the Iverson keywords for
representing APL glyphs in a natural-language-independent fashion.

First, a correction---I think I said this comes from the Dictionary of APL
published in Quote Quad 18 2; I missed the issue number by one.  The correct
reference is to Quote Quad 18 1.

The keyword table is published as "Table 1: APL alphabet and ASCII 
transliteration" of the Dictionary.  At the foot of the table, Iverson
notes:

  "The ASCII transliteration scheme in the last column is based upon 
   *similarity*, English-Greek *correspondences*, and *variants*,
   denoted by an extra delimiter (@) and varying by rotation about
   a horizontal or vertical axis.  Each transliteration which begins
   with a delimiter must end with a space."

Iverson tells me that for the choice of delimiter (or APL escape) as @,
he is indebted to Prof. L.J. Dickey, editor of Quote Quad.  Earlier
drafts of the Dictionary used '.', which is less obtrusive but also
occurs much more frequently in numbers, as an APL conjunction, and in text
in general.  The choice of @ strikes me as a very useful one---it is
an unusual character, and it is sometimes used as an escape in other
contexts as well.

The keywords themselves follow.  The table below cannot be a literal
quote of the one from the Dictionary, since the original shows both
glyphs and keywords.  I believe APLers will recognize most of the
keywords readily; to help get the hang of it, I'm also listing beside
each keyword the function names commonly associated with the primitive
it represents.  When a glyph represents different extensions in APL
based on Iverson's Dictionary and in APL2, I've tried to give both
descriptions.  In the last column, where available, I also give the name
Iverson lists as the character's name (as a glyph).  

The table presented here differs from the table as published in Quote
Quad in two ways, both to reduce my typing: (1) I have omitted all APL
glyphs (such as + and /) that are part of ASCII and hence 
have no keywords, even though the Dictionary's Table 1 lists the
complete APL alphabet; (2) the order of presentation is different---this
table is based on a table I use to support keyword-transliteration
functions.  The order is what I found convenient when keying in that
table, and probably reflects the @[] av on some system or other. 

@           (The escape character itself: represented 
            by at-blank, the minimal keyword)
            **Note: this one isn't actually in the 
            Dictionary.  It's what I use for this 
            purpose.)

@[-:]       Matrix Inverse, quad-divide               Domino
@@To        Execute (mnemonic: inverted thorn)        Tack
@@DI        Grade Down (mnemonic: inverted Grade Up)  Spine
@@D~        Del tilde (function locking)              
@[']        Quote Quad
@I^         Take                                      Pike
@->         branch, go-to
@Iv         Drop                                      Spike
@<-         Assignment, "is", "gets"                  
@-I         Left; "lev"; "right tack"; "left pointing 
                 tack"
@@T         Base Value (inverted Representation)      Base
@I-         Right; "dex"; "left tack"; "right pointing 
                 tack")
@@c         (Dictionary) link; (APL2) disclose; "right 
                 shoe" (reversed left shoe)
@>_         Greater Than or Equal (not less than)
@<_         Less Than or Equal (not greater than)
@@L         Ceiling, maximum (inverted floor, min)    Upstile
@=/         Not Equal, Different                      
@=_         match, identical, idem
@-          negative sign                             Macron
@<>         diamond                                   Diamond
@-:         divide, reciprocal
@[]         Quad                                      Quad
@@D         del (open/close fn defn)                  Del 
@no         comment                                   Lamp
@o"         (Dictionary) on, fn composition:          Paw
                 jot overstruck w dieresis
@"O         (Dictionary) upon, fn composition:        Hoof
                 circle overstruck w dieresis
@OI         Reverse, Rotate (last axis)               
@O-         Reverse, Rotate (first axis)
@O\         Transpose
@O*         Log 
@v~         Nor; not-or
@^~         Nand; not-and
@To         format (thorn)                            Thorn
@DI         Grade Down                                Spine
@\-         Scan along first, expand along first      
@,-         Catenate along first ("commabar", "drip")
@/-         Compress/replicate along first, 
                  reduce along first
@T          Representation, Antibase
@u          (union set symbol)                        Cup
@c          (Dictionary) Swap (commute);(APL2) enclose 
                  ("left shoe")
@n          Intersection                              Cap
@v          Or, GCD
@L          Floor, Minimum                            Downstile
@I          Absolute value, Residue                   Stile
@x          Signum, Times                             Cross
@"          (Dictionary) With, Under                  Dieresis
@o          Jot ("null")                              Jot 
@O          Circular fns, Pi Times                    Circle
@a          alpha                                     Alpha
@D          delta                                     Delta
@e          membership                                Epsilon
@i          iota, Count, Index                        Iota
@r          Shape, Reshape                            Rho
@w          omega                                     Omega

That's the table!  Samples of code represented this way, made up
of possibly useful functions to convert to and from this keyword
representation, will be posted as separate news items.

              /Roland Pesch

  mail will reach me fastest at: pesch@pa.reuter.com
  which is the same as:          ...sun!saxony!pesch
                    or:          ...hoptoad!saxony!pesch

  mail will also reach me at:    pesch@cup.portal.com
  (but I don't check this one very often).