APL/700
Revision as of 07:43, 8 September 2020 by Adám Brudzewsky (talk | contribs)
APL/700' was an APL implementation by wikipedia:Burroughs Corporation for their B6700/B7700 line of mainframe computers. The language was mostly identical to that of APL.SV and its successors, but differed in a few details:
- The statement separator was a semicolon (
;
) rather than the conventional diamond¨
and statements in such a so-called list were evaluated from right to left, much as if the semicolon was the Left identity function (⊣
). - In primitive pairs with both a last and first axis version, for example
/
vs⌿
and⌽
vs⊖
, the first axis version would use the function axis syntax to indicate the applicable axis counted from the last axis rather than from the first axis. For example⊖[1]
was equivalent to⌽
just like⌽[1]
was equivalent to⊖
. - While in general reduction using scalar functions were supported by for arrays of a compatible data type (numeric or character),
=/
and≠/
did not support character data. - APL/700 included modified assignment, but the pass-through value was the new value of the updated array.
- More set functions were included than even modern APLs have. In particular
⊂
and⊂
were Subset and Superset, though not strict subset and superset, but rather as{∧/(,a)∊(,⍵)}
and{∧/(,⍵)∊(,⍺)}
. Further-more, all the set functions except for Membership were defined in terms of the ravel of the arguments, and thus always returned a vector. - Format
⍕
allowed an advanced formatting specification through a character left argument. - Many additional quad names were available, including a set of two-letter system functions with all the combinations of S/R/Q (for Stop, Reset, Query) with T/S/M (Trace, Stop, Monitor), and character constants for control characters (
⎕B
,⎕L
,⎕R
,⎕T
, and⎕N
for Backspace, Linefeed, Return, Tab, and Null), the digits⎕D
, and the alphabet (⎕A
). - In a manner similar to the much later APLX, APL/700 had primitive functions for file operations. In particular,
⍍
to create, rename and change password for files, and⍔
for deleting files.⍃
and⍄
were used to read+pop and append components to the beginning and end of a file, respectively. This was in addition to⍇
and⍈
for read and write operations (as in APLX). - Equivalents of normal primitive functions were supplied for operations on component files, treating the files as vectors of elements:
⍐
and⍗
acted like Take and [Drop]] (↑
and↓
).⌼
would Reverse and Rotate (⌽
).
APL dialects [edit] | |
---|---|
Maintained | APL+Win ∙ APL2 ∙ APL64 ∙ APL\iv ∙ Aplette ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ Dyalog APL Vision ∙ dzaima/APL ∙ GNU APL ∙ Kap ∙ NARS2000 ∙ Pometo ∙ TinyAPL |
Historical | A Programming Language ∙ A+ (A) ∙ APL# ∙ APL2C ∙ APL\360 ∙ APL/700 ∙ APL\1130 ∙ APL\3000 ∙ APL.68000 ∙ APL*PLUS ∙ APL.jl ∙ APL.SV ∙ APLX ∙ Extended Dyalog APL ∙ Iverson notation ∙ IVSYS/7090 ∙ NARS ∙ ngn/apl ∙ openAPL ∙ Operators and Functions ∙ PAT ∙ Rowan ∙ SAX ∙ SHARP APL ∙ Rationalized APL ∙ VisualAPL (APLNext) ∙ VS APL ∙ York APL |
Derivatives | AHPL ∙ BQN ∙ CoSy ∙ ELI ∙ Glee ∙ I ∙ Ivy ∙ J ∙ Jelly ∙ K (Goal, Klong, Q) ∙ KamilaLisp ∙ Lang5 ∙ Lil ∙ Nial ∙ RAD ∙ Uiua |
Overviews | Comparison of APL dialects ∙ Timeline of array languages ∙ Timeline of influential array languages ∙ Family tree of array languages |