This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
apl [2021/11/04 10:35] papa |
apl [2021/12/03 07:29] papa [Function Editor] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | You can enter the APL interpreter on twenex by typing APLSF. | + | **APL-20 PANDAMONIUM REIGNS!** |
- | Then enter tty to use a non-APL keyboard. | + | |
- | You can find the keyboard mapping for APLSF on bitsavers here: [[http:// | + | |
- | ====== | + | **APLSF** (System Function) is an implementation of the APL programming language for TOPS-20 that is available on TWENEX. |
- | ^ APL \\ Character ^ Name ^ ASCII ^ Escape \\ Mode ^ | + | ===== In and Out ===== |
- | | ∧ | and | & | | | + | |
- | | <- | assignment | _ | | | + | To start the APL interpreter, |
- | | ÷ | divide | % | | | + | |
- | | ⋆ | exponentiate | * | @E | | + | @APLSF |
- | | × | multiply | # | | | + | |
- | | ? | question (roll and deal) | ? | @Q | | + | At the '' |
- | | ' | quote string | ' | @K | | + | |
- | | ↑ | take | %%^%% | @Y | | + | Leave APLSF by entering one of the following commands (APLSF converts all alphabetic input to upper-case): |
- | | ∣ | residue (ABsolute value) | .AB | @M | | + | |
- | | α | ALpha | .AL | @A | | + | |'' |
- | | ⎕ | quad (BoX) | .BX | @L | | + | |'' |
- | | ⌈ | CEiling (maximum) | .CE | @S | | + | |'' |
- | | ↓ | drop (Down Arrow) | .DA | @U | | + | |
- | | ¨ | Dieresis | .DD | | | + | To interrupt APLSF during execution, press '' |
- | | ⊥ | DEcode | .DE | @B | | + | |
- | | ∇ | DeL | .DL | @G | | + | Press '' |
- | | ◊ | DiaMond | .DM | | | + | |
- | | ∩ | Down Under | .DU | @C | | + | |
- | | ⊤ | ENcode | .EN | @N | | + | ===== APL Character Set ===== |
- | | ∈ | EPsilon | .EP | @E | | + | |
- | | ≥ | Greater then or Equal to | .GE | | | + | Although APL characters cannot be displayed or input when the terminal is in TTY mode, APLSF provides ASCII character string equivalents for all the APL characters as well as " |
- | | -> | GO to (branch) | .GO | | | + | |
+ | ^ APL \\ Character ^ Name ^ ASCII ^ Escape \\ Mode ^ ^ APL \\ Character ^ Name ^ ASCII ^ | ||
+ | | ∧ | and | & | | | ⍒ | Grade Down | .GD | | ||
+ | | <- | assignment | _ | | | ⍋ | Grade Up | .GU | | ||
+ | | ÷ | divide | % | | | ⌶ | I-Beam (histogram) | .IB | | ||
+ | | ⋆ | exponentiate | * | @E | | ⍟ | LoGarithm | .LG | | ||
+ | | × | multiply | # | | | ⍲ | NaNd | .NN | | ||
+ | | ? | question (roll and deal) | ? | @Q | | ⍱ | NoR | .NR | | ||
+ | | ' | quote string | ' | @K | | ⍀ | back expansion | .CB | | ||
+ | | ↑ | take | %%^%% | @Y | | ⊖ | (Circle) Rotate | .CR | | ||
+ | | ∣ | residue (ABsolute value) | .AB | @M | | ⌿ | back scan | .CS | | ||
+ | | α | ALpha | .AL | @A | | ⌹ | Divide Quad | .DQ | | ||
+ | | ⎕ | quad (BoX) | .BX | @L | | | Input Quad | .IQ | | ||
+ | | ⌈ | CEiling (maximum) | .CE | @S | | | Output Quad | .OQ | | ||
+ | | ↓ | drop (Down Arrow) | .DA | @U | | | OUt | .OU | | ||
+ | | ¨ | Dieresis | .DD | | | ⍫ | Protected Del | .PD | | ||
+ | | ⊥ | DEcode | .DE | @B | | | Quad Del | .QD | | ||
+ | | ∇ | DeL | .DL | @G | | ⍞ | Quad Quote | .QQ | | ||
+ | | ◊ | DiaMond | .DM | | | ⌽ | ReVersal | .RV | | ||
+ | | ∩ | Down Under | .DU | @C | | ⍉ | TRanspose | .TR | | ||
+ | | ⊤ | ENcode | .EN | @N | | ⍎ | eXecute | .XQ | | ||
+ | | ∈ | EPsilon | .EP | @E | | ⍕ | ForMat | .FM | | ||
+ | | ⌊ | FLoor | .FL | @D | | ⍝ | Comment (lamp) | " | ||
+ | | ≥ | Greater then or Equal to | .GE | | | __A__-__Z__ | underscored alphabetics | .ZA-.ZZ | ||
+ | | -> | GO to (branch) | .GO | | | ⍙ | underscored lower del | .Z@ | | ||
| ⍳ | IOta | .IO | @I | | | ⍳ | IOta | .IO | @I | | ||
| { | Left curly Brace | .LB | | | | { | Left curly Brace | .LB | | | ||
Line 47: | Line 69: | ||
| _ | UnderScore | .US | @F | | | _ | UnderScore | .US | @F | | ||
| ∪ | Up Union | .UU | @V | | | ∪ | Up Union | .UU | @V | | ||
+ | |||
+ | ===== Workspace Commands ===== | ||
+ | |||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |||
+ | ===== Function Editor ===== | ||
+ | |||
+ | To define a new function and invoke the editor, enter one of the following commands: | ||
+ | |||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |||
+ | Where: | ||
+ | |// | ||
+ | |//a1, a2//|Dummy arguments| | ||
+ | |// | ||
+ | |// | ||
+ | |||
+ | To edit an existing function, enter the command '' | ||
+ | |||
+ | The editor will start and prompt with the current line number, for example '' | ||
+ | |||
+ | ==== Editor commands ==== | ||
+ | |||
+ | |''// | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |'' | ||
+ | |||
+ | Multiple commands can be entered on a single line. For an example, you can open the editor on existing function '' | ||
+ | |||
+ | | ||
+ | |||
+ | ===== References ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||