1 11/22/83 Summary of APL features
2
3 This document summarizes the features available in Multics APL. APL
4 characters are represented here using the same typing conventions as
5 for ASCII terminals. See the "ASCII character set" section for more
6 information.
7
8
9 Terminals supported: All EBCDIC terminals at 134.5 baud, all
10 Correspondence terminals at 134.5 baud, all bit-paired APL/ASCII
11 terminals at any baud, all typewriter-paired APL/ASCII terminals at
12 any baud, all full ASCII terminals at any baud using a special
13 character set. Uppercase-only ASCII terminals are not supported.
14
15
16 ASCII character set: On full 96 character ASCII terminals, APL uses
17 a special mapping between ASCII characters and APL characters.
18 Uppercase alphabetic letters represent APL letters, underscored
19 uppercase alphabetic letters represent underscored APL letters, digits
20 represent themselves, a circumflex ^ represents the negative sign,
21 and a single quote ' represents the APL quote character. Lowercase
22 alphabetic letters, and punctuation characters, represent APL
23 operators. All APL characters can be formed by one or two
24 overstruck ASCII characters. See the following sections for a
25 complete list of operators.
26
27
28 Correction of typing errors: On EBCDIC and Correspondence terminals,
29 the "backspace-attention" convention can be used. On all terminals,
30 the regular Multics erase-kill convention can be used. The kill
31 character is the alpha "a" on ASCII terminals, and the erase
32 character is the omega "w" on ASCII terminals. On ASCII terminals,
33 at-sign @ and number sign # can also be used. The escape
34 character is the dieresis double-quote on ASCII terminals.
35
36
37 Monadic scalar operators:
38 + no operation * power of e
39 - negate *^Ho logarithm base e
40 x signum | absolute value
41 -^H: invert ! factorial
42 c ceiling o pi times
43 f floor
44
45
46 Dyadic scalar operators:
47 + plus o trigonometric
48 - minus & and
49 x times v or
50 -^H: divide &^H~ nand
51 c max v^H~ nor
52 f min /^H= not equal
53 * exponentiate = equal
54 *^Ho logarithm <^H_ less or equal
55 | residue > greater
56 ! combinations >^H_ greater or equal
57
58
59 Monadic mixed operators:
60 ~ not -^Ho reverse-first
61 p shape \^Ho transpose
62 , ravel b i-beam
63 i iota ? roll
64 d^H| grade up m matrix invert
65 g^H| grade down _^Hf format
66 o^H| reverse-last
67
68
69 Dyadic mixed operators:
70 p reshape o^H| rotate-last
71 , catenate/laminate -^Ho rotate-first
72 ,^H- catenate-first \^Ho transpose
73 i index e membership
74 ^^H| take _^H| decode
75 v^H| drop t encode
76 / compress-last ? deal
77 -^H/ compress-first m domino
78 \ expand-last _^Hf format
79 -^H\ expand-first
80
81
82 Primitive operations:
83 +/ reduction-last
84 +-^H/ reduction-first
85 +\ scan-last
86 +-^H\ scan-first
87 +.x inner product
88 _^Ho.+ outer product
89
90 Any of the scalar operators may participate in these operations
91 including the trigonometric operator.
92
93
94 Pseudo-operations:
95 -^H> branch
96 -^H< assignment
97 A... subscripting
98 A...-^H< subscripted assignment
99 _^He execute
100 SdFCN stop control
101 TdFCN trace control
102 q quad
103 '^Hq quote-quad
104
105
106 Editor requests:
107 g del character
108 g^H~ locked del character
109 gZ-^H<A FCN B;C;D typical function header for new function
110 gFCN typical editor invocation for old function
111 q list whole function
112 Nq list line N
113 qN list from line N to end
114 N retype line N
115 NqM detailed-edit line N starting in column M
116 dN delete line N
117 TEXT... enter text for prompted line
118
119
120 When a function is closed, a syntax check is made of the entire function. If
121 any errors are discovered, they are printed, and the user remains in the
122 editor. If the function was locked, it is unlocked. The user can immediately
123 type another "g" to exit the editing will be lost, or may fix the errors and
124 type "g" to have it checked again.
125
126
127 System variables:
128 qCT comparison tolerance qLC line counter
129 qIO index origin qTS time stamp
130 qLX latent expression qTT terminal type
131 qPP printing precision qUL user load
132 qPW printing width qWA workspace avail
133 qRL random link qCS character set
134 qAI accounting info qWU workspace used
135 qIT integer tolerance
136
137
138 System functions:
139 qAF evaluate active function qEX expunge
140 qCR canonical representation qFX fix
141 qCALL external call qNC name count
142 qDL delay qNL name list
143 qEC execute command
144
145
146 File system functions:
147 qFADDACL qFLIB qFRENAME
148 qFAPPEND qFLIM qFREPLACE
149 qFCREATE qFLISTACL qFSETACL
150 qFDELETEACL qFNAMES qFSIZE
151 qFDROP qFNUMS qFSTIE
152 qFERASE qFRDCI qFTIE
153 qFHOLD qFREAD qFUNTIE
154
155
156 System commands:
157 )R prints Multics ready message
158 )Q, )QUIT leaves apl
159 )E, )EXEC executes rest of line as Multics command
160 )ERRS prints state of error mode
161 )ERRS LONG changes error mode to long
162 )ERRS BRIEF changes error mode to brief default
163 )DEBUG prints state of debug mode
164 )DEBUG ON changes debug mode to on
165 )DEBUG OFF changes debug mode to off default
166 )VARS lists global variables
167 )GRPS lists groups
168 )FNS lists functions
169 )DIGITS prints printing precision setting
170 )DIGITS N changes printing precision setting to N
171
172
173 )ORIGIN prints index origin
174 )ORIGIN N changes origin setting to N default is 1
175 )WIDTH prints printing width
176 )WIDTH N changes printing width to N default is line length of terminal
177 )CLEAR clears workspace
178 )SINL, )SIV lists state indicator and local variables
179 )SI lists state indicator
180 )SAVE saves active workspace
181 )SAVE WSID save active workspace as WSID
182 )LOAD loads workspace of same name as active workspace
183 )LOAD WSID loads workspace named WSID
184 )WSID prints workspace identifier
185 )WSID ID changes workspace identifier to ID default is CLEAR WS
186
187
188 )CHECK prints state of compatibility check mode
189 )CHECK ON changes compatibility check mode to on
190 )CHECK OFF changes compatibility check mode to off default
191 )HELP XXX calls Multics help command with rest of line
192 )HUH reprints last error message in long error mode
193 )OFF exits from apl
194 )OFF HOLD exits from apl, does not logout in subsystem environment
195 )CONTINUE saves a continue workspace User_id.sv.apl and exits
196 from apl
197 )ERASE X erases the current value of the name X
198 )COPY WSID copies the variables, functions, and groups in WSID into
199 active workspace
200 )COPY WSID X... copies the named objects into active workspace
201 )PCOPY like copy, but does not overwrite objects of same name in
202 active workspace
203
204
205 )GROUP G A... forms new group G from names on rest of line
206 )GRP G lists members of group G
207 )MSG, )MSG ON calls immediate_messages
208 )MSG OFF calls defer_messages
209 )MSG XXX passes rest of line to send_message
210 )LIB lists workspaces in working directory
211 )LIB N lists workspaces in library N
212 )LIB PATH lists workspaces in directory named by PATH
213 )ZFN FN RN defines FN to be a niladic external function, RN is the
214 reference name of the program to call
215 )MFN FN RN defines FN to be a monadic external function, RN is the
216 reference name of the program to call
217 )DFN FN RN defines FN to be a dyadic external function, RN is the
218 reference name of the program to call
219 )EFNS lists functions previously defined by )ZFN, )MFN, or )DFN
220
221
222 )LIBD like )LIB, but include date-time saved and date-time used
223 )DROP WSID delete workspace named by WSID
224 )PORTS calls who
225 )METER prints state of metering mode
226 )METER ON changes metering mode to on
227 )METER OFF changes metering mode to off default
228 )V1DROP like )DROP, but for version 1 apl workspaces
229 )V1COPY like )COPY, but for version 1 apl workspaces
230 )V1PCOPY like )PCOPY, but for version 1 apl workspaces
231 )V1LIB like )LIB, but for version 1 apl workspaces
232 )TABS prints current tab width default is 10
233 )TABS N changes tab width to N
234 )SYMBOLS prints number of symbols in active workspace
235 )VERSION prints version number of apl
236 )? prints the names of all of the system commands