instruciional facility(u) naval postgraduate … · instruciional facility(u) naval postgraduate...
TRANSCRIPT
AD-A140 117 APL (A PROGRAMMING LANGUAGE) TUTOR: AN ON-LINE 1/3INSTRUCIIONAL FACILITY(U) NAVAL POSTGRADUATE SCHOOLMONTEREY CA K A LANES DEC 83
UNCLASSIFIED F/G 5/9 NL
EIIIIEEEEIIEIIIIIEEIIIIIIIEIIIIIEIIEIIIIEIIIIIIIEIIII
L-21 1 2.211111 ' ~J1m6
1.25 111111.4 1.
MICROCOPY RESOLUTION TEST CHARTNA1IONAL BUREAU OF SIANDARDS- 1963-A
mmmmmI
b. NAVAL POSTGRADUATE SCHOOLMonterey, California
THESISAPL TUTOR:
AN ON-LINE INSTRUCTIONAL FACILITY
by
LjJ Katherine S. Lanes-Flo
December 1983
Thesis Advisor: R. R. Read
Approved for public release; distribution unlimited
84 04 13 11Z
. . .. . . .. .
SECURITY CLASAIFICA ION OF THIS PAGE (Who. bets, Bfomed)_______________
REPOR DOCUMENTATION PAGE BEFORE COPEIGFORMI 9RTNMBE 4 . 60W ACCESSION NO. RECIPIENT'S CATALOG WUNDER
4. TTLIIandubefle)S. TYPE F REPORT & PERIOD COVERED
APL TUTOR: An On-Line Instructional Master's ThesisFacility December 1983
6. PERFORMING ORG. REPORT NUMBER
7. AUTMOR(s) I. CONTRACT OR GRANT NMNER~a)
Katherine A. Lanes_ _ _ _ _ _ _ _
9. PERFORMING ORGANIZATION NAME AN ADR.SI PROGRAM ELEMENT. PROJECT, TASK(AND ADRESSAREA & WORKC UNIT NUMBERS
Naval Postgraduate SchoolMonterey, California 93943
it. CONTROLLING OFFICE NAMIE AND ADDRESS 12. REPORT DATE
Naval Postgraduate School ncmor18Monterey, California 93943 13. MUMDER OF PAGES
1.MNITOING AGENC MAMIE A ADORES(if dill.,,t (an Controlingu 0111..) IS. SECURITY CLASS. (of this report)
IS.. OECL ASSI FICATION' OWNGRADING
SCHEDULE
1S. DISYRIGUTION STAYEMENT (of this Rdomr)
Approved for public release; distribution unlimited.
17. DISTRIBUTION STATEMENT (of the abog,.a animeadd to Stock20 It Atimenat Ifiro Report)
IS. SUPPLEMENTARY MOTES
19. gay WOROG (Cotaned a revers si it adedamy add idetfir' by Nooek inlibow)
APL, programming language, tutorial, CAI, CAL
25. LISTRACT (CnO ta rMINoaN ad 51 M~oSMand 14001 OruI Wea bI.b ae)
?This thesis describes a set of APL programs which enable astudent to learn A Programming Language (APL) by using it. Thestudent needs to know only how to log on to the computer andenter a few simple commands to begin the course.
The basic unit of the TUTOR workspace is the text variablewhich describes the use of one of seventy-five built-in APLfunctions. This description is accessible by a HELP function
IO , 4#An M472011mnoro Iw Iv # 649O.ET11S/N @102. LP.014. 6401 1 ICURITY CLAMSPICATION OF THIS PAGE (911o. =gOr.. s
SEt CUUIV C6LAMFCAk?@ OF THIS PAGE 1Wb DO* DdWe.4
Block 20.-wi.thout going through an entire lesson. Other functions conductinteractive question-and-answer drill. A MENU function liststhe units for student selection of a lesson or information ona symbol. The student can also go through a sequence of lessonsin a computer-driven course.
0 These programs were written on and for the IBM 3033 installa-tion at Naval Postgraduate School, using APL version 4.0 forVM/CMS with IBM 3278 terminals.
Accession For
DTIC TABUnannouncedJustif ication
Di tr b ti n
Availability code sAvctl and/or
Dist Special
2 WCRT CLASIPICATIOU OF TI4IS PAG4fM6S DOM 1
Approved for public release; distribution unlimited.
,PL TUTOR:An On-Line Instructional Facility
by
Katherine S. LanesLieutenant, United States Navy
B.A., New Mexico State Univesitye 197'4
Submitedin artial fulfilment o therequireentsifor theidegree of
dASrER OF SCIENCE IN OPERATIONS RESEARCH
from the
NATAL POSTGRADUATE SCE03LDecember 1983
I
Author: -j7 /
Approved by: .... 2____ ....Thesis Advisor
* ~ZY ~ Second Reader
Chairman, Department of Operations Research
Dean of Informa t d Policy Sciences
3
- - -----.-----.------
& BSTRACT
This thesis describes a set of &PL programs which enable
a student to learn A Programming Language (APL) by using it.
The student needs to know only how to log on to the computer
and enter a few simple commands to begin -the course.
The basic unit of the TUTOR workspace iz the text vari-able which describes the use of one of seventy-five built-in
APL functions. This description is accessible by a HELP
function without going through an entire lesson. Othsr
functions ccnduct interactive question-and-answer drill. A
MENU functicn lists the units for student selection of a
lesson or information on a symbol. The stu ent can also gothrough a sequence of lessons in a -omputer-driven course.
These programs were written on and for the IBM 3333
installation at Naval Postgraduate School, using hPT. vzrsion4.0 for V./CMS with IBM 3278 terminals.
7r
.
TABLE OF CONTEITS
I. BACKGROUND . .. .. . . . .. . . . . .. . .. . 7
II. USING APL TUTOR . . . . . . . . . . . . . . . . . 9
III. EXTENDING APL TUTOR . . . . . . . . . . . . . . . 12
APPENDIX A: USERIS GUIDE TO APL TUTOR . . . . . . . . . 14
APPENDIX B: PROGRAMMER'S GUIDE . . . . . . . . . . . . . 20
A. FLOW CHARTS . . . . . . . . . . . . . . . . . 20
B. FUNCTIONS . .. . .. .. . . . . .. . ... 42C. VARIABLES . . . . . .. .. . .. . . . . . . 67
1. Global variables . . . . . .. .. . . .. 67
2. Text variables . . . . . . . . . . . . . . 73
D. MAKING MODIFICATIONS . . . . . . .. .. . . 166
APPENDIX C: SAMPLE SUN .. . . . . . . . . . . . . .. 168
BIBLIOGRAPHY . .. .... . ... . ... ... 199
INITIAL DISTRIBUTION LIST . . .*. . . . . . . . . ... 200
I~I~ ~l ' " ,f ' - . . . . l. . . - II i ... .. ... .,4, 5 ' .
LIST OF FIGURES
B.1 Interrelationship of TUTOR Functions . . . . . . 22
B.2 Procedure of START Functian . . . . . . . . . . 23
B.3 Procedure of MENU Functio ...... . . . . .23
B.4 Procedure of HELP Function . . . . . . . . . . . 24
B.5 Procedure of INFO Function . . . . . . . . . . . 25
B.6 Procedure of RUN Function . . . . . . . . . . . 26
B.7 Procedure of TEACH Functioa . . . . . . . . . . 27
B.8 Procedure of LESSON Function . . . . . . . . . . 28
B.9 Procedure of SHOW Function--i . . . . . . . . . 29
B.10 Procedure of SHOW Function--2 . . . . . . . . . 30 K
B.11 Procedure of SHOW Function--3 . . . . . . . . . 31
B.12 Procedure of ASK Function ........... 32
B.13 . Procedure of SUMASK Function .......... 33
B.14 Procedure of SCORE Function . . . . . . . . . 34
Bo15 Procedure of RUNDRILL Function ... . . . .. 35
B.16 Procedure of DRILL Functioa . . . . . o . . . . 36
B.17 Procedure of PULL Function . . . . . . . . . . 37
B.18 Procedure of TRY Function--i . . . . .. . . . 38
B.19 Procedure of TRY Function--2 . . . . . . . . . . 39
B.20 Procedure of TEST Fuanctica . 40
B.21 Procedure of SQUEEZE, NEXTLESSON, andORDERIAT Fns ... .. . ........ .... 41
6
I. f_CK.ROUN D
A Programing Language (APL) is an interactive, inter-
pretive computer language designed by Kenneth E. Iverson at
Harvard in 1962. Its advantages inzlude the ease of manipu-lation of multi-dimensional arrays of numbers, the lack ofrigorous input/output formatting, and the use of u.1ilju?symbols to represent a wide variety of built-in functions.Unlike other high-level languages, the:re is no requirement
to write and compile a strictly formatted program b=fors
execution. APL may be used in "desk calculator" mode, whera single line of input is accepted ind evaluated, ret u :- 4 .nq
an immediate response. While it zay take quitcr some -imsfor the user to master APL fully, the beginner can quickly
jump in and start experimenting.
The APL TUTOR was designed to snable the beginning APL
student to gain some familiarity with the basic conce ts of
the language without going througt a formal course. It
consists of a set of APL programs which enable the studsnt
to enter simple commands and receive information, questicns,
an d drill about the symbols and functions used in APL.
Since at present no information on writing functions is
included, it may be used as a supplement to the normal mods
of teaching at NPS.
Currently the APL student's resources at NPS consist of
the instructor, other students, and texts such as thoselis-.ed in the bibliography. There also exists a copyrighted
IBM drill function, TEACH, found in the APLCOURS workspace
in the public library of most APL installations. (At NPS,
it can be accessed by entering )LOAD I APLCOURS while in kPL
mode.) This function, and a sub-function, EASYDRILL,provide simple drill questions for calculator functions
7 L/m
selected by the student. This workspace does not, hcwavs - ,
provide any information concerning the correct use or zyn-x
of any functions.
The specific audiencs targeted is the first to third
quarter NPS students in the Operations Analysis curriculum,
who are currently taught APL in one-hour weekly labs as part
of three prcbability and statistics courses. t-ny, if rot
most, of these students arrive at NPS from six weeks to six
months before their first quarter. It would be tc their
advantage to get a 'head start' on laarning APL, but thers
is no separate course in this language as there is i.n.
FORTRAN or PASCAL, for example.
A basic requirement for the TUt)R, then, is tha i-: be
comprehensible to someone who has naver seen APL before. In
fact, the 'desk calculator" functions should be understand-
able to someone who has never even used a computer before.
This means that some of the beginning lessons may seem too
simplistic to the student who has some programming ?xperi-
enca. However, the more advanced student can easily skim
through this primary material and progress to the more
sophisticated concepts. Intermediate mathematics including
concepts of linear algebra is the only background informa-
tion that is assumed.
8
e
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ii. USLiG APL TUTOR
The APL TUTOR workspace should be available in one of
the public libraries at NPS. Instructions for loading and
copying it are on the first page of Appendix A. If i-. isnot available in the public libraries, it can be obtainedfrom Professor R. R. Read upon request.
The APL TUTOR workspace contains sixn.ee.n functions which
administer the course. Their interrelationship is shown in
Figure B.1. In this diagram, the ovals indicate functions
which are called by the student, while rectangles indicate
functions which are called internally. Th. procedurs ofeach function is outlined in Figures B.4 through B. 21.
Further information can be found in the co.ment lines of
each program in Appendix B, part B.The actual text of the course is ccntained in APL vazi-
ables which are displayed by the functions SnOW and RUN.The text of each variable can be found in Appendix B, part
C.2. Also in Appendix B (part C.1) are several global vari-
ables which are used in various programs. Most important of
these is MAT, which provides information on Ra-h text vari-
able, such as the symbol it pertains to, the function type(onadic/Dyadic/Neither), the type of arguments it takes
(Numeric, character(K), Either, Boolean), the rank of thearguments permitted (Scalar, Vector, matrix(X), Any) , and asequential lesson number. The other major global variable
is CUES, which consists of a number of questions that can be
called upon by the ASK function.
Before commencing the APL TUT3R course, the student
needs to have, as a zinimum, the instructions given on the
first page of Appendix A. The other information the student
will need is dis.iayed y the TUTOR, and is also included in
9
" i" ' -- " .. . . ... ['l .... :. ... .. -, ' .. .. ...... . .. . '..... .. . .-- r
Appendix A, which should be given to all students who will
be using TUTOR. The variable HO is displayed each and
every time the workspace TUTOR is loaded by the student, ani
can also be zalled up at any time by entering HOW. The
other variables in Appendix A are displaye3 by the STA.%T
function. Most may be called up by the student at any time,
as noted.
Figure B.1 shows the variety of ways the student can
access and use the information ia rUTOR. The beginner
enters START to get the basic background informaticn needed
to complete ths course. START iaszructs the student to
enter LESSON 100 to begin the course. After completing this
lesson, the student merely has to enter LESSON NEXT to
receive the instructional units in the order indicated in
the variable SAT.
The student who is enrolled in a course using APL may
also follow the instructor's guidiac-e concerning lessons to
take. The student, enters LESSON NNN, where NNN is the
lesson number assigned. A more advanced student can explore
or review earlier lessons by entering TEACH and then the
symbol that he/she is interested in.
The more advanced student may also be interested in the
HELP function which displays information without asking
gussticns or providing a drill. The student can enter HELP,
followed by the appropriate symbol, or INFO NNN, wher NNNis the same as the pertinent lessoa number. These lesson
numbers can be found by entering MENU and browsing the list
displayed. MENU also repeats the instructions for using
LESSON and INFO.
Effort has been made to ensure that the programs will
not terminate abnormally in response to a student input
error. Every input is checked for validity before it is
processed. For example, see the function DRILL, page 59, at
lines 8 to 17. However, because it is not possible to check
10
~Il
for every possible input o- Combinition of .nputs, thezrr may
still b - some way to cause an error. Instructions tc th-
student in case of an error are included 4-. thz_ BASICS
displayed by the START function. rhe student should have a
hard copy of these instructions, as well.
Any input by the student at , time when nc input nscalled for will cause an abnormal termination. This is
in herent in the APL interpreter and cannot be avoidsed by thq
programmer. However, all the student needs to do :: thiscase is restart by entering one of the elementary ccmmands
(HELP, TEACH, LESSON, etc.)
A sample run is included at Appendix C.
!1
i HI H , i . . .. , -- A '
III. BT?1NDING L TZU.O
There are many ways in which the APL TUTOR can be
expanded to improve its usefulness. Lessons could bs
included on the many system commands and variables which are
used in APL. Auxiliary lessons OL groups of functions, e.g.logical functions, and their basi: concepts could provide
useful additional information. Lessons could be addd to
describe programming technigues, a d amplifying 1-ssons on
applications could be pzo..tded. P:obably any of th- i=ssons
could benefit from additional questions to be included in
the ASK function. Also, the ASK function itself could b_
modified to permit more complex questions and answers.
Another type of Aimrovement frDm the pedagogical Foint
of view would be the inclusion of facilities for measuring
and recording students' progress. The student could be
tested after every lesson or group of lessons and the scores
recorded for the instructors review. Or, the course ccull
be designed to automatically review the student's weak areas
and retest before going on. In any casa, it might be bene-
ficial to incLude lessons which review concepts covered by
the course so far.A test and evaluation of the TUTOR would be extremely
beneficial in comparing it to the current teaching methods.
Students could be tested for their knowledge of APL and
those who had used the TUTOR compared to those who had not.
Furthermore, different versions of the TUTOR could be tested
against each other. Several different texts could be used,
or versions with and without the drill functions.
This could lead to a still more sophisticated modifica-
tion of the course, in combination with programmed student
testing. After an initial unit, the testing could be
12
designed to reveal what type of instruction, e.g. drill or
no drill, works best for that individual student. Or, th--
student could simply be asked his or her preferences in
terms of teaching techniques. Then the course would aizo-
matically tailor later lessons to the individual.
All of these changes require someone skilled in APL to
modify the current programs. These programs have beer.
heavily documented by flow charts and comment lines
(Appendix B) in order to make the task of modification
easier. Also, specific instructions for cercain types of
modifications are included in the viriable HOWMODS, Appendix
B, part D. Any advanced student can perscnalize a copy of
TUTOR with the help of these tips. For more substantial
modifications such as those suggested above, the point of
contact for the public version of TUTOR at NPS is Professor
R. R. Read.
13
APPENDIX A
USER'S GUIDE TO APL TUTOR
IF YOU HAVE NEVER EVER USED THE COMPUTER BEFORE, START HERE:
1. Go to the Registration and Accounting Officl. nIsideIngersoll rM. 141. Ask for a use= number. You willneed to tell them the password you want to use.
2. While you are there, pick up a copy of NPS TechnicalNote VI-01, "User's Guide to VM/CS a NPS."
3. Follow the instructions &n VA-01 for loggina on aniformatting your disk. If your kayboard has .. redsymbols on at, you may contlnue wnth step 6 below.Otherwise, log off (see VM-01) and continue w:-h step 4when you are ready.
IF YOU HAVE FORMATTED YOUR DISK, START HERE:
4. Find a free terminal (in Ingersoll room 141 or room 369)that has red symbcls on the keyboard.
5. Log on ani enter your password.6. When you see a line beginning ZZIS..., press the ENTER
key.7. When you see a line beginning R: ... , enter the letters
APL.8. You should see several lines appear endinq with the line
CLEAR WS. If you don't, stop naeze and get help!9. Now look at the bottom center of your screen, below the
line. If you see the letters APL, go or 4o the .nextstep. If you don't, hold down the ALT key (next to theENTER key) and press the large kay at the too right ofthe main Keyboard which has AL ON-OFF in red lt ers onthe front. The letters APL zhould now appear at thebottom of your screen. This tlls the t n oT h is tels te teminal to use_the red symbols when you upshif-. To use the redsymbols on the front of the keys, you must hold down theALT key instead of the SHIFT key.
10. If THIS IS THE VERY FIRST TINE YO3 ARE USING APL TUTOR,ENTER )LO&D 5 TUTOR. (Remember to use the red karen-Mhesis, third row, far raghr, aot the black parenthesisin the too row.) OR FOLLOW THE DIRECTIONS GIVEN BY YOURINSTRUCTOR. If you have used rUTOR before, and youfollowed the dir.ctions in steps 12 and 13 below, justenter )LOAD TUTOR.
11. Now just follow the directions which appear on thescreen. If no directions appear, and all you see is aline which says SAVED... and possibly a line which saysWSSIZE... enter HOW to see the directions. To be surethat the &irecticns appear every tame enter START, andfollow steps 12 and 13 when you finisA your session.
12. If this is the first time you have used TUTOR, enter)VSID TUTOR.
13..hen you are ready to quit for the da enter )SAVE.14. When yqu see the time, date, and T6TORe nter )OFF.This wil log yo of the computer coietely. (Formore advanced sounts: )OFF HOLD will'return you toC€S.)
14
HOW
YOU MAY USE THE APL TUTOR IN THREE WAYSI
(1) ENTER: HELP
TO SELECT THE SYMBOLS THAT YOU WANT 1NFORMATION ABOUT,
(2) ENTER: TEACH
TO SELECT THE S'MBOLS THAT YOU WANT INFORMATION A1ID. DRILL ON,
(3) ENTER! MENU
TO SEE A LIST OF SYMBOLS AND TOPICS,
IF YOU HAVE NEVER USED THE APL TUTOR BEFORE, ENTER: START
TO SEE THESE INSTRUCTIONS AGAIN AT AN' TIME, EHTER: HOW
15
INTRO
WELCOME TO THE APL TUTOR,
THE PURPOSE OF THIS WORKSPACE IS TO INTRODUCE YOU TO
'A PROGRAMMING LANGUAGE' BY DESCRIPING THE FUNCTIONS OF THE
MANY SPECIAL APL SYMBOLS , AND BY OUTLINING THE PROCEDURES FOR
DESIGNING YOUR OWN FUNCTIONS,
BACKGROUND
THE APL TUTOR ASSUMES Y'OU HAVE HAD LINEAR ALGEBRA AND TRIG;jIOMETRY,
CALCULUS IS NOT NECESSARY,
IF YOU HAVE NEVER HAD ANY COMPUTER PROGRAMMING BEFORE, DOl T WORRY,
YOU CAN START USING 4PL RIGHT AWAYI AS A SUPER-SOPHISTCATED
CALCULATOR WITH MANY BUILT-IN FUNCTIONS,
IF YOU HAVE STUDIED OTHER COMPUTER PROGRAMMING LANGUAGES, rELA*, !
APL IS NOT LIKE ANY OF THE OTHER MAJOR HISH-LEVEL LANGUAGES,
YOU CAN FORGET ABOUT DATA TYPES, INPUT/OUTPUT FORMATTIG, AND
MANY OF THE OTHER TEDIOUS DETAILS OF FORTRAN, PASCAL, ETC.
AFTER YOU ARE SUFFICIENTLY FAMILIAR WITH THE CALCULATOR MODE
OF APLp YOU CAN LEARN TO DEFINE YOUR OWN FUNCTIONS WITH CASE.,
16
• I..
BASICS
HERE IS SOME BASIC INFORMATION YOU WILL NEED TO KNOW IN ORDER TO
UNDERSTAND THE APL TUTOR LESSONS.
MONADIC AND DYADIC FUNCTIONS
YOU ARE ALREADY FAMILIAR WITH SYMBOLS WHICH REPRESENT ARITHMETIC
FUNCTIONS, SUCH AS + OR :* APL USES THESE SYMBOLS AND MANY OTHERS
TO REPRESENT A VARIETY OF FUNCTIONS.
MANY FUNCTIONS, SUCH AS , REQUIRE TWO ARGUMENTS, THAT IS, TWO INPUT
NUMBERS, IN APL, THESE ARE CALLED DYADIC FUNCTIONS, AND THE SYMBOL
IS PLACED BETWEEN THE ARGUMENTS; FOR EXAMPLE, 3+4,
OTHER FUNCTIONS, SUCH AS LH (NATURAL LOG), REQUIRE ONLY ONE ARGUMENT,
THES1 MONADIC FUNCTION SYMBOLS ARE PLACED TO THE LEFT OF THE DATA
WHICH THEY ARE TO OPERATE ON, FOR EXAMPLE, LN 3 IN AFL IS 03,
DATA TYPES
APL DISTINGUISHES ONLY TWO TYPES OF DATA: NUMERIC AND CHARACTER,
VERY SIMPLY, CHARACTER DATA ARE ENCLOSED 14 QUOTES (') WHEN ENTERED.
'2' IS CHARACTER DATA; 2 IS NUMERIC DATA, SOME FUHCTIONS
WILL OPERATE ON BOTH TYPES OF DATA9 SOME ONLY ON NUMERIC,
ARRAYS
THE GREATEST STRENGTH OF APL LIES IN ITS ABILITY TO TAKE AN ENTIRE
ARRAY OF NUMBERS AS A SINGLE ARGUMENT, THUS TWO MATRIXES CAN BE
ADDED BY ENTERING SIMPLY AB 9 WITH NO SUBSCRIPTS, LOOPS , ETC,
THIS MAKES IT IMPORTANT TO KNOW THE RAH1 (THE NUMBER OF DIMENSIONS)
OF DATA IN USE, A SINGLE NUMBER IS NORMALLY A SCALAR (RAoK 0),
A SERIES OF NUMBERS IS A VETR A ONE-DIMENSIONAL ARRAY (RANK 1),
NUMBERS CAN ALSO BE ARRANGED IN ROWS AND COLUMNS, TO MAKE A MATRIX
(RANK 2). MATRIXES CAN BE 'STACKED' TO MAKE UP THE PAGES OF A
THREE-DIMENSIONAL ARRAY, OFTEN CALLED A 9221 (RANK 3), IN FACT,
THERE IS NO L1IT TO THE NUMBER OF DIMENSIONS IN AN APL ARRAY,
THE 69dI!" OF THE DIMENSIONS IS ALSO EFFECTIVELY UNLIMITED, LENGTH
17
REFERS TO THE NUMBER OF ELEMENTS IN A DIMENSION, FOR EXAMPLE,
THE NUMBER OF ROWS, LENGTH MAY EVEN BE 0.
IN THIS TUTORIAL, A SCALAR MAY BE REFERRED TO AS S, L, OR R,
A VECTOR MAY BE CALLED Vr VIP OR V2, WHILE A MATRIX IS M, Mj, OR M24
AN ARRAY, WHICH MAY BE A VECTOR, A MATRIX, OR AN ARRAY OF AV' HIGHER
DIMENSION, WILL BE LABELLED AP Alp OR A2,
EXAMPLES
WHEN EXAMPLES ARE GIVEN IN THE TEXT OF A FUNCTION DESCRIPTION, THE
SYMBOL = IS USED BETWEEN THE EXAMPLE INPUT AND THE EXAMFLE OUTPUT.
FOR EXAMPLE: 2+5 =, 7
THIS SYMBOL CAN BE READ AS 'PRODUCES' OR #RETURNS',
ERRORS
YOU SHOULD NOT RECEIVE ANY ERROR MESSAGES WHILE USIG AFL TUTOR.
HOWEVER, YOU MAY SEE A PHRASE LIKE 'VALUE ERROR' (WITHOUT QUOTE
MARKS) WHEN YOU ARE EXPECTING A NORMAL RESPONSE,
OR IF YOU ACCIDENTALLY HIT THE ENTER KEY WHEN THE COMPUTER 1B NOT
EXPECTING AN INPUT, THE FUNCTION MAY ENI' ABRUPTLY, LIKE THIS:
MENU [63
IF EITHER OF THESE THINGS HAPPEN, BE SURE TO ENTER: # (UPSHIFT )
THEN RESTART WITH ANY COMMAND,
HALTING A LESSON
YOU MAY STOP ANY LESSON AT ANY POINT WHERE A GUESTION IS ASKED
BY ENTERING: STOP
TO SEE THIS INFORMATION AGAIN AT ANY TIME, ENTER: BASICS
18
+ ' I
HOWTE ACH
YOU WAY START A LESSON IN THREE WAYS:
(j) ENTER: LESSON NEXTLESSOH
TO START THE LESSON FOLLWING THE LAST ONE iOU COMPLETED.
(2) ENTER: LESSON HNN (WHERE HN1 IS A 3-DIGIT NUMBER)
TO START LESSON NUMBER NNN.
TO SEE A LIST OF LESSON NUMBERS, ENTER: ME1U
(3) ENTER: TEACH
TO SELECT THE SYMBOL THAT YOU WANT A LESSON ON.
TO SEE THIS INFORMATION AGAIN AT AN) TINE, ENTER: HOWTEACH
19
I 1 .. ... ........ illlrlr,, __i.,-. .. . 2:%,._ :*- L --';:7
PROGR&NMER I S GUIDE
A. FLOW CHARTS
Figure B.1 shows the relationship of the varicus func-
tions within the ZUTOR workspace. rhe first function called
by the new student should be START. Aft.er that, the student
will usually commence a session by calling MEN]U, T!ACH,
HELP, LESSON, or INFO. These functions in turn call th_other functions of TUTOR as indicated by the arrows. The
procedure of these functions is Dutlined in figures 3.2through B.21.
In APL, there is no difference in the programming of
main routines, subroutines, and functions; all are referredto as functions. However, when oae function calls anotherfunction, the calling function is suspend-ad until the called
function is completed. Then the :alling function resumes
operation, possibly using the result of the called 0 uncticn.
Therefore, "return to the calling function, -f any" isimplied at the end of every program but is not explicit.
END, implying return, is shown in the 4iagrams only in thoss
functions which are normally called by another function.
It should be noted that "room for expansion" has been
provided in the SHOW, RUNDRILL, DRILL, and TEST functions.
RUNDRILL and DRILL have the capability to aisplay drill
questions with matrix arguments. rhis capacity is not
currently being used because the inswer must be input invector form. It was felt that this might confuse the
student. However, further development and experimentation
sight find uses for this type of question, so the matrix
form has been left available. TEST and SHOW have calling
20
lines for the matrix form commented out. There are als3
comment lines in SHOW to indicate where matrix and higher-
level arrays questicns would go if they ars added in ths
future. See the section on makina modificamions for more
informat--ion.The four functions at the bottom of figure B.1 are not
part of the TUTOR function hierarchy. NEXTLESSON is used to
provide a lesson number when the student calls for LESSON
NEXTLESSON. ORDERMAT is provided for the beaefit of -:he
programmer to rearrange the sequence of lessors in thocourse. TEST is also provided for the programmer (or
student) who wishes to run only the drill section of a
lesson. SQUEEZE is a utility called by several functions to
delete blanks in a string of characters.
21
21I
.2~ I '
A S HOWMSI RUNO LTY
SCORE PULL DRILL
4EXLESON REMAT WTS EZ
11guro B.1I Interrelationship of TUTOR Functions.
22
START
Ensure
Imat Ion
Figure B.2 Procedure of START Function.
MENU
Formatmenu
Menu A
Figure B.3 Procedure of HENU Function.
23
HELP
RequestI nout,
rAccent
resp~onse
Fiqur N B.d Prowueo ZL uci
MENU? nde24
yI
INFO(NNN)
NNN N Regretsale inessage
Find ROWI ncex,
o ROW y Regretsmessage
$N
RUN
(ROW)
Endingmessage
Pigure B.S P"cedure of INFO Puuction.
25
RUN(ROW)
nae I
o name
TEACH
RequestInput.
ceptresponse
Fgreponseur f ZCHFncin
y 14
LESSON
(NNN)
NNN N Regretsalar message
y
FInd ROWI nclex.
o ROW y Regrets
N
SHOW
(ROW)
Endfngmessage
Figure B.8 Procedure of LESSON Function.
28
SNOW
(ROW) scalartext
Setvariables
s '
yar-? cutrsSet ASK
+ paramps
messag text(QV)
I ASK
la
N
(WT) s-S
Flag? N RUNDRILL
la
VN
Figure BA9 Procedure of SHON Function--I.
29
vs x 7
MatrixV-S text
(2) skQ'RUNDRILL>
y Set ASKStop params
vv (QV)ASK
sta(3) y
RUNDRILL DL
yH
X N
303
A C 14
f ArraYS7 (WT) Halt
text SUMASK message
sk O's stop y H ENDlagI"
+ N
Set ASK nTYparamsunTY
(QV) TRYASK (Sym)
stop YH TEACH ND]a )
[ N YC Reset
LASTLESSON
Endingmssagej
END
Figure 8.11 Procedure of sHoW Function-3.
31
(OUES)ASK
Incrementquest? on
NN
eigre i.2ncadrementK untia
essage 13 0
Ass~gn
(WT)SUt4ASK
wrn NEND
yon N
End t ngmessage
Set flag
END
Figure B.13 Procedure of SUR&SK Function.
33
. .. .. .. ....
ASCORE
D~ I a yquetfon
Accept
Input.
agaInc wrong
Iure a.1 swProeueo SCR Fuc
ull' ounte
N___
(LT
TRUNO ILL
Start 0 N Fra
countersMI
S Format()monadtc Q DRILL
& A
Add symf or red,scan Dlt
For~matfunction
SetNImultIV~l n Tee ie
(1)-
PULL
N T
END
Figure 8. 15 Procedure of KIJEDRILL Function,
35
DR ILL
Setdef aul t
f lea
questt on
Corret Nn wrong
mesaag answerV
END /lnncre orget N Ernentryaanser
ccounter
InD l~ N
Figure B.16 Procedure of DRILL Function.
36
PULL
Def lu Itreturn
Setmultlipl erl
Formatreturn
Fig uteLi Prc d e of PL Fu c on
O~m' 0 37
ooA
TRY(SYM)
StartNrestartcounter
Inu Ge helt SettrutR messag flag
Figure~~~~~~ B.8Poeu.o YTFnto-
Inc8
restart ___- d
wS
!~ro N.1 Prcdr fY!Fnto-
33
NL
TEST
(NNN) V
SetvS(1varlables VR R
I y
Set (2) Stop Hdef aul t RUNDRILL
N
S-S stop HA
Ny N
(1) MTest OKRUNORILL message
Stop H V-VN*N
/ (2)v HaltRUNDR ILL message
yH
N
Pigure B.20 Procedure of TEST Function.
40
SQUEEZE ORDERt4AT(STRING)J NE'XTLESSO
Delete Ffnd Createblanks In Index of vectorstr~na ILASTLESSONI IIesson Is
END Return Indexnext vector
lesson NNNI order.
ReorderMdAT OyIndex
Figure B.21 Procedure of SQUEEZE, NEITLESSON, and ORDERMAT Fnis.
41
B. FUNCTIONS
The following section contains the APL funtic.ls "hich
operate the TUTOR course. The coiment iines, which begin
with a symbol, indicate the procedure in general, bur do
not describe the specific programmiag -:echniqjues used.
42
!
START
1 ENSURES 'HOW' APPEARS WHEN WORKSPACE IS LOADED
C21 DLX4-'HOW'
[3) 1 DISPLAYS INFORMATION FOR FIRST-TIME USER
[41 G+.IHTRO
[5) flfBACKGROUND
[61 1+l.ASICS
[71 GljHOWTEACH
Cal SEQC'TO START YOUF: FIRST LESSON IN APL, EOTEP: LESSO, 101
43
7 MENU;Zzz
[13 A REOUZRES GLOB'AL VARIAB'LE MAT
123 0W.INFORMATION IS AVAILABLE Oil THE FOLLOWING SYMBOLS/TOICSI'
133 M FORMAT AND DISPLAY MENU
143 zzz.-(5?1) ,OY(17?1)yO
E53 ((r((pMAT)[13)3)72)fZZATLESCOL,SMCOL,FIAMECOL3
[6] D+IT0 SEE MENU A~GAIN, ENTER- MEN-U' ,Q!,tFOk INFORMAT
ION ABOUT FUNCTION, ENTER:- INFO MN14 (WHERE HUNN IS MENU NUIMBER)
lCR,'TO GO THROUGH TUTORIAL LESSON, ENTER: LESSON 01-114
44
9 HELP;SYMBOL;ROWS;4wf;R
113 A CALLS QUEUE t MENU, SQUEEZE
(23 0-ENTER THE SYMBOL(S) YOU WOULD LIKE INFORMATION ABOUT,'
(31 O' OR,,FOR MENU SELECTION, ENTER: MENlU'
[43 a DELETE BLANKS IN RESPONSE
[5] SYMBOL+.SQUEEZE SYMPOL (-
(6) a IF RESPONSE IS 'MENU', GO TO 'OTHER-; ELSE GO ON
[7) 4OTHERx,(4+/+/SY'MBOLo,:'MEHU')
8] p FIND INDEXES OF ROWS THAT CONTAIN THE RESPONSE TH $S4MDOL COLUMN
(93 ROWS5.(MAT;SYMCOLES*MBOL)/',(PMAT)[('
[10) A IF 10 ROWS CONTAIN RESPONSE, GO TO 'OOFS3'; ELSE GO 0I0
[113 4OOPS3x%0=fROWS
[12] f START LOOP COU1TER AND SET LESSON NR TO 0
[13) NNNR.O
E14) INCREMENT COUNTER
(15] NEWROW:R.R+1
(161 0 4 R
[171 f CALL RUN TO DZSPLA" HELP FUNCTION FOR ROW CDRRESPONt'I;!G TO COUNTE
R
(183 RUN ROWSCRJ
[193 a IF MORE ROWS REMAIN, RETURN TO NEWROW; ELSE GO O
(203 4NEWRONXIR(PROWS
(213 A PRINT FUNCTION ENDING MSG AND EXIT
[223 O,opR MORE HELP, ENTER: HELP'
(23) *0
[243 fa SYMBOL NOT FOUND; PRINT ERROR MSG AND EXIT
[253 OOPS3:a+.'SORRY, INFORMATION ABOUT THIS SYMBOL IS NOT AVAILABLE AT T
HIS TIME,lGRE,'FOR HELP WITH ANOTHER SYMBOL, ENTER: HELP,'
(26) 40
(273 A RESPOHSE IS 'MENU'; EXECUTE RESPONSE AND EXIT
(28 OTHER:ISYBOL
9
45
9 INFO NNN;ROW
[1) R CALLS RUN; REQUIRES GLOBAL VARIABLE MAT
123 IF INU IS NOT A SCALAR? GO TO OOPSI; ELSE GO ON
E33 4OOPSlxt(f rN? ))0
[4) * FIND INDEXES OF POW
[53 ROW.((IAAT[LESCOL])==HNN-I)/t(pMAT)[c1
6) 3 IF NO ROWS CONTAIN RESPONSE, GO TO lOOF'S3'; ELSE GO ON
[73 4OOPS3xt =fROw
[B) a RUN HELP FUNCTION
(93 RUN ROW
[10] A DISPLAY ENDIN5 MESSAGE
E113 n*_,'FOR HOPE INFORMATION, ENTERI: INFO iNN'
[12) 40
[13] A VECTOR ARGUMENT; PRINT ERROR MSG ND EXIT
[14) OOPS:041'IFO MUST BE FOLLOWED B1 A SA IGL _ PFRAMETER,' 1 CA" -TO FESTA
RT, ENTER: IN|FO N.HN (WHERE NNN IS A THREE-DICIT NUMPEF),
[153 40
£16) a !NFO NOT FOUND; PRINT ERROR MSG AIID E>,IT
(173 OOPS3:r-'SORRY', INFORMATION ABOUT THIS SYMB.OL IS NOT AVAILABLE AT T
HIS TIE,,C,'FOR HELP WITH ANOTHER SfMBOL, ENTER: HELP,'
46
I
7 RUN ROW;HAME;RANK;FNAME;U
E13 R CALLED BY HELP, INFO, TRY; CALLS SQUEEZE
12) A REQUIRES GLOBAL VARIABLE MAT
(3) RASSIGN THE NAME OF THE HELP VARIABLE TO THE VARIABLE 'IAME'
14) NAME ,MATRO;NAHECOL]
[5] a GO TO NA IF THE HELP VARIABLE *HAME' DOES HOT EXIST; ELSE GO ON
£6) 4NAX0=flC NAME
(73 A DISPLAY THE GENERAL DESCRIFTION PORTION OF THE HELP VAPIABLE
(B) 04-(0 1)+((±NAME)E;1J='°) HAME
19) A DISPLAY SCALAR PORTION OF HELP VARIABLE
£10) 0-(0 1)+((NAME)E;1]='o')JjHAME
[11 a IF NO MORE INFO, EXIT; ELSE GO ON
1123 4oXj-lE(INAME)[;1]E'vn4'
(13) R ASK IF MORE DETAILED INFO DESIRED
r143 D-CEv,'MORE?'
(153 A IF RESPONSE IS NULL , E .IT; ELSE GO O
(163 40Xi0=zU4-O[173 40xi-l "=(,u)[1]
£18) A DISPLAY VECTOR PORTION OF HELP VARIABLE
[193 1(0 j)+((jHA9ME)[;1]'v')4j)AME
£20) A DISPLAY MATRIX PORTION OF HELP VARIABLE
(21] D(0 1)+((NHAME)[;1]='n')fNAME
£22) A DISPLAY ALL ARRAYS PORTION OF HELP VARIABLE
£23) 0-(0 )+((±HAME)[;1]='l')!NAME
(24) 40
£253 R ASSIGN FULL NAME OF SYMBOL TO VARIABLE 'FNAMEI; PRINT ERROR MSG
E26) HA:FHAME+.SQUEE:EMAT(ROW;FNAMECOL
E273 a+-Qy'SORRY, INFORMATION ABOUT '9 FNAMEe' IS HOT AVAILABLE AT THIS
TIME,'
q
47
mobs--
9 TEACH; SYMBOL; ROWS;H,- ; R
1I3 A CALLS SCHEDULE9 MENU, SQUEEZE
123 04.'ENTER THE SYMBOL(S) YOU WOULD LIKE INFORMATION ABOUT,'
133 01--' 2t FOR MENU SELECTION, ENTER: MENU'
[43 a DELETE BLANKS IN RESPONSE
[5) SYMBOL-.SQUEEZE SYMBOL-a
(6) 3 IF RESPONSE IS 'MEHU', GO TO 'OTHER'; ELSE GO "01
[7) 4OTHERX (4=+/+/S'MBOL.*='MEN'IU
')
[8] fA FIND INDEX"ES OF ROWS THAT CONTAIN THE RESPONSE III SYMBOL CiLUMNI'
[9) ROWS-.(MAT[;SYMCOL3ESYMBOL) / (pMAT)tll
[103 A IF NO ROWS CONTAIN RESPONSE, GO TO 'OOPS3' ; ELSE GO Oil
(113 4OOPS3x10=rROWS
(123 A INITIALIZE LOOP COUNTER AND SET LESSON HR TO 0
(13) HNN+- -0
C143 A INCREMENT COUNTER
(15) NEWROW:R-R+l
(16] OC_
[173 a CALL SHOW TO DISPLAY TEACH FUNCTION FOR ROW INDE'.',EL' BY COUIITER
[18) SHOW ROWSER)
(19) A IF ROWS REMAIN, RETURN TO NEWROW; ELSE GO OH
(20) 4NEWROWxWR(pROWS
(21) A DISPLAY END OF SCHEDULE MSG AND EXIT
(22) 0+-ER 'THIS I5 THE END OF SCHEDULED LESSONS.,R,'TO SELECT MORE LE
SSONS ENTER: TEACH'
(23) 40
(24) A SYMBOL NOT FOUND; PRINT ERROR MSG AND EXIT
(25) OOPS3:D''SORRY, INFORMATION ABOUT THIS SYMBOL IS HOT AVAILABLE 4T T
HIS TIME,',C;,'FOR LESSONS OH ANOTHER SYMBOL, ENTER' TEACH'
(263 40
C273 o RESPONSE IS 'MENU'; EXECUTE RESPONSE AND EXIT
[281 OTHER1:6SYMBOL
9
48
I.
" - x ,+ " - . . ., ., ,, , , I
LESSON.! H-H;ROW
[1] A CALLS SHOW
[2] 3 IF I.IH IS NOT A SCALAF, GO TO 'OO'SI; ELSE GO O0
[3) 0oPs I4 O (f NO) )0
[4) 1 SELECT ROW FO LESSON U\iER N0.1
[5] ROW+" (( 1 "MATE LESCOL])=?4):* )/' (fMAT)[l]
[6 ] IF NO ROWS COHTAIN RESPOiNSE, GO TO 'OOFS.'; ELSE GO ON
[7) 4OOPS3x 0=fROW
[8] CALL SHOW TO D'ISFLAV TEACH FUNCTION FOR POWS SELECTt'
[9] SHOW ROW
[10) R DISPLAf Et-IN'xG MESSAGE Ai.)r EXIT
Ell] O-TO START ANOTHER LESSON, ETER: LESSON NHN.#i.'
[12) 0
[13) A VECTOR ARGUMENT; PRIN.1T ERROR MSG AND' EM'IT
114) OOPS1:Ds.'LESSON MUST B~E FOLLOWED' By A PARCAMErER' C, 'TO NES
TART, ENTER: LESSON NONO (WHERE 14110 IS C- TH-REE-DIGIT 'UMBER)
[153 40
[16] A LESSON NOT FOUND; PRINT ERFOR 4SG A1.41 EXIT
[17] OOPS3:0n-'SORRY, INFORMATION ABOUT THIS S'MBOL IS NOT AVAILAPLE i"
HIS TIME,,CR,'FOR HELP WITH ANOTHER S MBOL, EN. TEP- HELP,-
49
q SHOW ROW;NAME;G;PAIK;FNAME; I;RTTW;I';AV;T'TPE;ARS;SS;F; Z
[13 a CALLED Br" SCHEDULE, LESSON; CALLS ASK, RUOtsPILL, TF:, OGUEEZ
12 a REGUIRES GLOBAL VARIABLE MAT
£3) A SET VARIABLES CORRESPONDING TO ROW
E4) NAME-,MATCROW;HAMECOL]
[5) FHAMEE-SOUEEZEMAT[ROW;FAMECOL)
163 SYM.MATROW;S'I"COL]
£7) RANK -MAT[ROW;SVXACOL]
[8] TYPEf.MATEROW;MlCOL]
£9] ARG4.MAT[ROW;NKCOL)
110) R GO TO 'HA' IF HELP VARIBLE DOES :.tor E.IST; ELSE GO ON-
[111) 4NAXI(O=ONC NAME)
121) R INITIALIZE TOTAL GUESTIOa, WRONG A,'SWEq: COU14TERS
[13) RTs.WTIo0
114) Y-10
E15 -- .----------------------------------------------------------------
E163 A DISPLAY GENERAL PORTION OF HELP VARIABLE
E17) Ofi(-0 I)((jNAME)[;1]=.')JjNAME
£18) a GENERAL OUESTIONS
[193 QVi-j,(5xjTYPE='0-),6
E20) AV(?I+T'fPE='r'I),SQUEEZE RANK
£21) Ov ASK AV
[22) A CHECK NUMBER OF RIGHT ANSWERS
£23) WT SUMASK RT
124) A IF FLAG INDICATES 'STOP' RESPONSEF GO TO HALT; ELSE GO O0
E253 4HALTXY=2
£27) A DISPLAY SCALAR PORTION OF HELP VARIABLE
128) D-(0 j)+(( 1 NAME)[;13=)'')iHAME
£29) a SCALAR QUESTIONS
C303 4SDX 1 TYPE='M
£31) *V+2
[323 av4'HY'[l+sYm'+xrL=$vWA*']
50
[33) QV ASK AV
[34] R IF FLAG IHDCATES 'STOP' RESPONSE, GO TO HALT; ELSE GO OH
[353 4HALTxY=_
£36) A SCALAR DRILL
(37) SD04VX\SYMESS+.'+--F-ruIml*(==)$VAApS'
[38] +Vx ( (SYME ' P,')ATYPE='M' )v(SfME ' )ATYPE='D
[39] 1 RUNDRILL 1
[403 a IF FLAG IHDICATES 'STOP' RESPOUSE, GO TO HALT; ELSE GO OH
[413 .HALTxY=2
E 4 2 3 A - -- -- - -- - - - - -- - -- - -- -- - -- - -- - - - -- -- - -- - - -- - - -- -- - - - -- -- - --
[43) R DISPLAY VECTOR PORTION OF HELP VARIABLE
[443 V t0(-(0 1 ), ((INAME)[C 1] = I ' ) !LA M E
[45) ASK VECTOR OUESTIONS
[46) 4VDx'TYPE='M'
(47) Ov-3
[49) QV ASK AV
E503 A IF FLAG INDICATES 'STOPI PESPONSE, GO TO HALT; ELSE GO Oil
[51) 4HALTxY=2
£52) A VECTOR DRILL
TYPE='0'
[54] 4VSXt(SYM'I')
£55] 1 RUNDRILL 2
E56) A IF FLAG INDICATES 'STOP' RESPONSE, GO TO HALT; ELSE GO ON
[57) 4HALTxY=2
£583 VS:.VVXj(SYM'$?,4')AT'rPE2'Ml
£59) 4XXl(S'fME'F$G')vTYPE='m'
E603 2 RUNDRILL 1
1613 R IF FLAG IHDICATES 'STOP' RESPONSE, GO TO HALT; ELSE GO ON
£623 4NLTx=2
E633 VV:4XXjSYMEtj'
£643 2 RUNDRILL 2
[653 a IF FLAG INDICATES 'STOP' RESPONSE, GO TO HALT; ELSE GO ON
51
[66) 4HALTxY=2
[67]A
[68] A DISPLAY MATRIX, PORTION OF HELP VARIABLE
1691 X;04-(0 ) (z A E [ 1] I ') t
[70) A ASK MATRIX QUESTIONS
[713 4AX TYPE=IMI
[723 DV.-4
[733 AVe'IFT° [i+SY '+-x+Xm' FrL i=* _ . v* ' ]
(74) Ov ASK AV
(75] a IF FLAG INIDICATES 'STOP' RESPONSE, GO TO HALTj CLSE GO 'D).!
(76] 4HALTXY=2
[77) A MATRIX DRILL
(78] ,MD: RT'PE RUNIDRILL 3
[79) A IF FLAG I.1DICATES 'STOF RESPONSE, GO TO HALT; ELSE G' ON
(80] 4HALTxY=2
(81]-A----------------------------------------------------------------
8] DISPLAY ALL ARAYS PORTION OF HELP VAPIALE
(84) a ASK ALL ARRAYS QUESTIONS
(85] QVf8,9XIXF(../(l 2)XIARGrE'E
(86] AV+.('HY'[j+XF]),SQUEEZE I L.IC,+F]
(87] QV ASK AV
(88] A IF FLAG INDICATES 'STOP' RESPONSEF GO TO HALT; ELSE GO ON
E89] 4HALTxy=2
(90]-----------------------------------------------------------------
(91] p SUMMARIZE STUDENT PERFORMANCE
[923 SUM:WT SUMASK RT
(933 A IF FLAG IDICATES 'STOP' RESPONSE, GO TO HQLT; ELSE GO OH
(94] JHALTXY=2
(95]-----------------------------------------------------------------
[963 0 CALL TRY FOR SELECTED SYMBOLS
[97) EXP:4EHDX1m(SY4 '+-X4')ATYPE:'D'
[98] TRY SYM
(99] I IF FLAG INDICATES 'STOP' PESPOHSES GO TO HALT; ELSE GO ON
52
[100) 4HLTxf=2
[101)
[102) R LESSON COMPLETE; IF NNI=0 (TEACH), EXIT; ELSE GO ON
[103] END:4oX INNH=
[1043 a NNN0 (LESSON); SET LASTLESSON TO THIS LESSON HR.
[1053 OUT L STLESSON-.wH0
[106] DISPLAY MSG AND EXIT
[1073 CF25'THIS IS THE END OF YOUR LESSON,
[1083] a-'FOR THE NEXT LESSON IN SEOUE-NCE, ENTER:' LESSOIlf NEXTLESSOW
£109) 40
[110] a HELP VAR NOT AVAILABLE; DISPLAY ERROR MSS AND E%.IT
[111] NA:EY SORR, INFORMATION ABOUT - FNAME, S NOT V4uL4.-PL(E AT T-415
TIME,-
[112) 40
[113] HALT:Cg~'THIS LESSON HAS BEEN HALTED,
53
m
7UES ASK ANS;;W;I;A;L;AP;RK;
[1) A CALLED B1 SHOW; CALLS SCORE
[2) R REQUIRES HOH-LOCAL VARIABLES RTWTY, GLOBAL CUES
[33 R ASSIGI THE NIUME ER OF GUESTIONS TO -P1
[4] R-.pQUES
[5) l ASSIGHS TOTAL HUMBER OF OUESTIONS TO IRT'
[£6 RTj.RT+R
[7] R IF HR OF GUESTIONS A NP OF ANSWERS, GO TO 'OOFS ; ELSE GO Oil
[8] 4OOPSX ?FiAHS
£9) a INITIALIZE COUNTER, CHARACTER VAR3
[11] R START LOOF' INCREMENT COUNTES:j I1ITALIZE 1RON1 ANSWER COU-T
[12] STARTI-I+ I
£13) w(-0
[14) a ASSIGN QUESTIOH ANHD HSWER PARAMETERS FOR aSK FUt-Cr:Gu
[15) 4+(,A .S) [II
[16] G-C', jCUES[(,OUES)[I ;]
[17) R CALL 'SCORE' TO EVALUATE THE 3UESTION
[18) GUERT:A SCORE 0
[19) A IF FLAG INDICATES 'REPEAT', RETURN TO SAME aUESTOH
£20] fj IF FLAG IHDICATES 'STOP' RESPONSE, E'IIT; ELSE GO ON
[21) 4(OUEPYO)['f
[2] a IF OUESTIONS REMAIN, ETURN TO START'; ELSE EMIT
C23) 4STARTxjI(R
[24) 40
[25] A F07. DEBUGGING' ARGUMENTS HOT SAME LEi!GTH; PRINT ERROR* MSG AND E".1
T
[26) OOPS:D.-pQUES # pAHS'
54
A SCORE ;:UFUT
[1] R CALLED BY ASK
[2) A REQUIRES NON-LOCAL VARIABLES YWWT
£3) R DISPLAY TEXT OF GUESTION
[4) fl -t
E53 A ASSIGN RESFONSE TO INPUT' AFTER DELETING BLANKS
£6] INPUT.SOUEEZE INPUT-o
£7] A IF RESPONSE IS NULL, ADD I WRONG AIS AND GO TO 'LAST' ; ELSE GOC ON
[3) WTt-T+0=pINPUT
[9 4LASTxj0=INPUT
10] R IF RESPONSE IS 'STOP-, GO TO 'OUT'; ELSE GO ON
[11) -OUTXj4=+/+/INFUTo,='STOPl
£12] A IF RESPONSE $ RIGHT ANSWER, GO TO 'WRONG'; ELSE GO ON
(13) NEXT:4WROGx (,INPUT)[j]$A
14] A DISPLAY MSG
1151 0+.'R I G H T '
[16) R SET FLAG TO NULL; EXIT
[17) 40 ,' 0
[18) A INCREMENT WRONG ANSWER COUNTERS
[19] WRONG:W6W+j
[20) WT .WT+j
£213 A GO TO LAST IF THREE WRONG ANSWERS TO THIS QUESTION; ELSE GO ON
[223 4LASTxIW)3
£233 a DISPLAY MSG
[24) 0'SORRY, PLEASE TRY AGAIN'
[25) A SET FLAG TO INDICATE REPEAT QUESTION; EXIT
[26) 40,YiI
(27) A 40
[28) l THREE WRONG ANSWERS; DISPLAY MSG
£29) LAST:04'SORRY, THE CORRECT ANSWER IS ',A
[30) A SET FLAG TO INDICATE GO TO NEXT QUESTION; EXIT
[31) 40,!-O0
[32) A SET FLAG TO INDICATE 'STOP' RESPONSE
[33) OUT:'i-2
55
7 WT SUMASK P
[1) A CALLED E1 SHOW AFTER ALL 'ASK' CALLS
(2) A IF FEWER WRONG RESPONSES THAN QUESTIONS, EXIT; ELSE 0 OH
[3) 40XWT(R
(4) 3 WRONG RESPONSES ) GUESTIONS; DISPLAY MESSAGE AND EXIT
(53 0-'VOU ENTERED ',(.WT),' WRONG ANSWERS OUT OF ' t(RF)p' OUESTIOUS. '
[63 f+-'IF YOU WANT TO RETAKE THIS LESSON, ENTER, LE'-SO ',wAT50OW
LESCOL]
(7) rl-2
56
II i
L RUNDRILL H;FUNC;F.;Kj;K2);;A;W;C;M
(I] R CALLED BY SHOW; CALLS DRILLPULL
(2) R REQUIRES NON-LOCAL VARIALES SYM, TYPE
(33 a INITIALIZE ANSWER COUNTERS
[43 c t.w 1-0
E5] START-
[6] 1 EXTEND SYM FOR REDUCTION, SCAN
[73] S +- ( ( S' i", ' -4 ' )/'( '+ - rL= C[? 5 3 S
(8) a FORMAT FUNCTION DISPLAT
[10] FUC .(R,3)p' ',SY'M,'
[11] a SET MULTIPLIER
[12) M ?3
(13) A PULL RANDOM NUMBEE ARGUMENTS
[14) K1+-1 PULL L
(15) X2+-2 PULL i
[16] f IF K IS EMPTY VECTOR, E:I!IT; ELSE GO 00
117) 40xi0=fW1
[18] R IF TYPE IS MOHADIC GO TO NONTY; ELSE GO ON
[193 4MOHTYxIT'T*PE
='M'
[20) R FORMAT DYADIC 0 / A
(21) O (tKI),FUNC,tK2
(22) A+jI(tK1),SYM,T, '
[23) 4RUN
[24) R FORMAT MONADIC Q/A
(25) MONTY":
[26] eFUHC,tK2
(27) ASYM,t,K2
[28] a RUN DRILL
[29) RUN:O DRILL A
[30) a DELETE EXTRA SYMBOL (IF ANY)
E31) SYM4'1t syM
(323 a IF STOP FLAG IS SET, EXIT; ELSE GO ON
57
1L
C33] 40x'f=2
[34] A IF WRONG ANSWERS ), GO TO IFEV'; ELSE GO OH
[353 4REVxlW13
[36) A IF RIGHT AHSWERS ( R, FETUFN TO 'START'; ZLSE EXIT
E37] 4STARTxIC(l
[383 40
[39) REV!
[40) Oi-Rg 'PLEASE REVIEW THE tDESCRIFTIOH OF THIS FUNCTIOH O" TZLK WITH
YOUle'p I4STRUCTOR BEFORE FETURNIW5 TO THIS UNIT -
[41) Y +-2
58
iL
7 ZI.P PULL IlI;R.;C;L;H;E;POOL
[1] ACALLED' BY RUNrIRILL
(2)3 REQUIRES HON-LOCAL VARIABLES SfI4, M
[3) SET DEFAULT VALUE
£5) R P IS 1 FOR LEFT ARG, 'I FOR RIGHT ARG
[6 SET 14ULTIPLIER BASED~ Oil M FROM 1 TO 3(EXCEPT mollEizlc rL)
C7)3 MULT((10*?4-7),jo.I)[I+ (SI'M I13E rL ,#(T'T:E='M I )A. YM E b 3
£8)3 IS RANKX OF DESIRED' RANDOM ARP~R; ASSIGN ROWS A11D C -LUMI'S TO 9:
ND C
£10) C*-(1y(1+M),2)[N3
1113 A DETERMINE LIM4ITS BASED ON TYPE OF SYMBOL
[12) P01HD*POOL+,o
£133 POOLt-POOL,(St*M[l]t +-xrL,<!= . c*' )/MULTXHO,-Hi-19
£14] POL-OL(SrC3'~loe)F=)/UTHO-
£15) POL.OL(StMlftok'A=)E-ftr
£16) POOLPOOL,((SYMlr'I:I ''))/2,'3,4
£17) POOL4.POOL,(STM£[13e'+:')/MULTXD,-D -2,4,5,8
£18) FOOL+-POOL,(S'tM[13 vP*')/ 0 1
£193 POOL+.POOL,((SM1=e')ATYF'E='4')/l,lt3
£20) 4PZXX(TI1PE'M' )vSTM£1)$e'4'
E21) A KLUGE FOR LOGARITHM--K2 ALWAYS A POWER OF X1 (POOL IS E14PTY)
[223 POOL+.POOL,((Sym£13='.')A(T'rPE='rD')AP=I)/2,3.i0
£23) 4PZxlp1l
(25) A IF NO NUMBERS 1IN POOL, EXIT; ELSE GO O1N
(26) PZ:4oXIO=pPOOL
(273 POOL~j-0OPOOL
[283 a PROVIDE ARRAY OF RANDOM NRS
E29) Z..(RC)POOL[(RXC)?j00)
59
0 DRILL A;P;5SE;S0;L
[1] a CALLED BY RUNDfRILL; CALLS SC'UEEZE
£2) 3 REQUIRES HOH-LOCAL VARIABLES CW; GLOBAL CR
£3) START:
£5) R DISPLA DRILL QUESTION
[6) ASK:[f-CR,'WHAT IS THE RESULT OFt'
[7) Q-Q
[8) A IF REPONSE IS ISTfP FI, GO TO -HALT-; ELSE GO ON
[9] ",HALTx 14-+/+/'STOP'o ,= S B
+S Q
UEE:E 9(-o
£10) 3 IF ANSWER IS NULL, GO TO WR; ELSE GO O 1
£113 .WRxl 0=fSB
£12) A CHECK FOR NUMERIC RESPOOSE
[13] CX:4HAl(0SSE'1234567890.-')vmO ES '-.'
[14) A IF LENGTH OF RESPONSE LENGTH OF GIVEN i.OSWLI; GO TO WR, ; ELSE
GO ON
£15) ..WRX(?,A)of,±A
[16] R IF RESPONSE = GIVEN ANSWER, GO TO 'RT,; ELSE GO ON
[17] "jRT)(j((pA)A.= jB )
[18] a ANSWER IS WRONG; DISPLAY ANSWER
£193 WR:a 'SORR 'r, CORRECT ANSWER IS:'
£20) i-A
E21) a INCREMENT WRONG ANSWER COUNTER 4-ID RETURN TO RUNDRZLL
[22) wNW+l
E23) 40
£24) a ANSWER IS RIGHT; DISPLAY MESSAGE
(25) RT:O4-'CORRECT:'
£26) m IHCREMENT RIGHT ANSWER COUNTER AND RETURN
[273 C+.C+l
E28) 40
[29) Na:D.'SORRYI THIS ANSWER NOT ACCEPTABLE. PLEASE ENTER A NUMERIC ANS
WER,
E303 4ASK
60
1313 STOP AT STUDIENT REOUEST; SET FLAG 41IEI EMIT
(32) HALT:-*fn.2
61
TRI S'TM;W;B;T;C;TW
[1) R CALLED BY SHOW; CALLS PUN
(2) A REQUIRES NON-LOCAL VARIABLES ROW, SYH, FNAME
E3] TW-o0
(43 RESTART:TW+.TW+l
(5) A GO TO OUCH IF RESTART COUNTER EQUALS 3
[6) 4OUCHxlTW=3
[73 A INITIALIZE FLAGS ANt' VROIG ANSWER COUNTER
[83 T+.C+.Wi-
[9) A REQUEST STUDENT INPUT A LOGICAL E;PRESSION USI;.OG THE SYMBOL
[10] START:
[11] 0$.EffWRITE A TRUE STATEMENT USING ',S7'M','CA'M0R EXAF'LE: 4:2.
(12) A IF RESPONSE IS -STOP', GO TO -HALT-; ELSE GO ON
(133 4HALTx14=i+/'STOP'oo=B'
(14) R IF RESPONSE IS A NULL OR A NAME, GO TO 'WRONG'; ELSE GO ON
(153 4wROHGxl(4 0NC B)v0=fs
[16) R SET T=I IF STATEMEtIT IS TRUE
(173 NEAT:T+-==1P
[18) A SET C=I IF STATEMENT CONTAINS THE SYMBOL
(19) C*-SrM(B
(203 A GO TO RIGHT IF T ANt C SOTH EQUAL 1; ELSE GO ON
(21) 4RIGHTxtTAC
(223 A ANSWER IS WRONG; INCREMENT COUNTER
(23) WRONG:wW+I
(24) 3 GO TO REV IF WRONG ANSWER COUNTER EGUALS 3
(253 4REvxiw=3
(263 GO TO NOSYM IF THE STATEMENT IS TRUE; ELSE GO O
[27) -NOSYMKXT
[283 A PRINT ERROR MSG
(293 NT:..I'SORRY, THIS STATEMENT IS NOT TRUE.-
S30) fl GO TO NOS'M IF THE STATEMENT DOES NOT CONTAIN THE SYMBOL; ELSE GO
ON
62
[31] 4NOSYTx 4,c
E32] R PRINT MSG AN' RETURN TO START
[ 33] 3nE., TRY, AGAIN.,
[34) -START
£35] a PPINT ERFOR ASO AHD RETURN TO START
£36) NOS'':0(-' TOUR ANSWER DOES HOT UE S'T'd , TRY AGAIN.'
[37) 4START
£38) A PRINT SG RuE' EXIT
£39] RIGHT: I'CORRECZT:'
£403 40
[41) A PRINT MSG A;irl RESTART
£42) REV:D(C,-R 'DO OU WISH TO REVIEW THE E'SCRIPTIO't OF 'F;AME,?, ,
ENTER Y OR. 14.
[432 A IF RESPONSE IS HULL OR NOT Y, GO TO RESTAR T ELSE 1O C14
[44) 4RESTARTX O=psB-[
[45) 4RESTARTX 'lYlB
[463 a DISPLAY HELP VARIABLETHEN FESTART
£47] RUN ROW
£48) 4RESTART
[4?3 A THREE RESTARTS; DISPLAY MESSAGE AND E.IT
[50] OUCH:[(' PLEASE SEE YOUR INSTRUCTOR 17O ASSISTANCE'
£51) 40
£52] R STOP AT STUDENT REQUEST; SET FLAG A.D ExIT
[53) HALT :00,'f.2
63
- -- '.. . . . .. ..
7 TEST N?li-;.'ME;G;PFAHK;FNAAE; 7 CT; WT;O O;AV; T)FE;AF:G;.B
a1 f USED TO TEST :iRrLL ;CALLS RUHE'ILL, TRY, SDEZZE
£]A SET VARIAPLES CORRESPONDaING TO ROW
[3] ROW.( (jMAT[;LESCOL] =N?H)/j (eoAT)[l]
£43 NAME.,MATCROW;NAMEC0L2
£5] F4ME+SUEEZE,MAT[O;FIIAMECOLI
£63 SYM+-MAT[K0W;St*MCOLJ
[7) RAl1K+-MAT[RO;SVXAC,3Lj
[8) TYPE+-MAT[POW;MOL)
[9) ARG+MAT FCW;NKCOL)
£1)ASCALAR DRILL
£12) SD:4vxl.msymss-' +-xdU j. 'l(~= AM
[13)]
£14) 1 RU14DRILL1
£15) R IF FLAG INDICATES 'STOP, PESeCUSE, GQ TO HALT; ELSC 50 Cu0
[16) .HALTx'r=2
£17) V:- VDXk(oDaNC NAME)
£18] a VECTOR DRILL
E203 4vSxl(syme'i')
£2&1] 1 RUNDRILL 2
C£22) A IF FLAG INDICATES 'STOP' RESFONSE, GO TO HALT; ELSE GO Ott
£'23)1 4MALT xY2l
[24) VS*.VVXj(SYMfl@pjj' JATYPE='M'
£253 4XXj(SYME'ftt *6)vTYPE=1?M
E26) 2 RUNDRILL1
C27) N IF FLAG INDICATES 'STOP' RESPONSE, GO TO HALT; ELSE GO ON
E282 4NALTx't=2
E293 vv:4xxiSyTNilI
E302 2 RUNDRILL 2.
£3]~IF FLAG INDICATES 'STOP' RESPONSE, GO TO HALT; ELSE GO ON.
64
1323 4HALTx*=2
1331 ( NAME)
134] MDl,4Ax - (SYM pI) ATTPE
:-
135) 1 RUNrRILL 3
C36) R IF FLAG INDICATES 'STOP' RES'ONSE, GO TO HALT; ELSE O OiO
[37) -tHALTxT=2
1382 A:D'TEST OKI
[393 40
(40] HALT7t 'THIU TEST HAS BEEN HALTED,
t 65
iI
9 Z-iEXTLESSON;I;V
El) RFIND IN'EX OF LAST LESSON IN VECTOR OF LESSD.t NuA.BERS
[2] I"-(V±IM ATC;LESCOL]) LASTLE- 'O
[3] fRETURN NEXT LESSON U1LMBER IN "SEQUEiCE
14) zi-VE1j+j)
V ORERMAT;OM ;ICON
[I1 ] SORTS THE VARIABELE 'MAT' IN ACSEMDIMG ORDER OF LESI-Di S ,-EU;'
E23 A CREATE VECTOR. OF LESSO- ttRS
E33 OM"-.,MAT[;i4]
£4) A FIND IN IEXES OF LESSONS IN ORD E
[5) ICOMj-*Om
16) A REORDER AAT ACCOFPING TO INDEXES
[7) MAT.T-MATCICOM;3
v Zi-SQUEEZE STRING
[13 A CALLED BY HELP, RUN, TEACH, SHOW, SCOPE, DRILL
£2) A DELETES BLANKS IN CHARACTER STRING ARGUMENT
[31 Zi-(' '$,STRIHG)/,STRIHG
9
66
C. VARIABLES
1. Global va:i-bles
The following section contains all of the i7c La
variablez 1 - the TUTOR workspace except the t=--t variables
(part C) and the use='s guide variables called by -h= S:ARI.function (appendix A). MAT is tha most Impcrtant v~t._i a!l
in TUTOR, as it is called on to cross-index symbols, -.s.
numbers, :unction names, and s-lez-ed functicn c.:ceris-
tics. The variables with raines a_=n.g in C3L in.-ex thf-columns of MAT for use in then func-ons, so thaz a-
columns can be rearranged if necessary. CUES prcviles ques-tions for use in the ASK func:.cn, ana al! cf -i:.e -
e..er, underlined variables (except CR) conta----- 0:o
mul-iple-choize answers for use with CUES. Ts t"-h- i -
tant alobal variable is LASTLESSON which is iva a valie bv
-.he SHOW function to indicate the last lesson ccl-.
All other vari:able-s used in TUTOR functions ar e local v=ri-
ables a- sone level of the calling nier.archy.
67
MAT
is - M N S EA EGAT IVE _ SUMBER
102 + N N A COPJ CONJUGATE
103 + D N 1. A A PLUS PLUS
104 - M 4 A CHA1 CHANGE SIGN
105 - n N N A A MINU MINUS
106 x M N A S I GN SIGNUM
107 x D -I N A A TIME TIMES
102 M N A PRECI RECIPROCAL
109 E, N N A A DIVI DIVIDE
121 ( ) M E A PARE PARENS
12 M K V QUOT 0UOTE
123 r I K E v A SPEC SRECIFICATO-
124 M N E a SHAP SHAPE
125 p Li N. E V A :ESH RESHAPE
126 L] D E N A a BRAC ?RACKETS
127 , M E A RAVE RAVEL
12B , Li E E A a CATE CATENATE
11-9 M 1.1 V INEE I N DE),,_G E N E RA T OF
131 / M E A PEW2 REDUCTION
132 1 A E .4 P.ED I R E DU CT 10.
141 a M N a EP O E'XPONENT IAL
1421 a I N .1 A A POWE POWER
143 a A * A NAT) NATURAL LOG
144 I A 1 a a LOGA LOGARITHM
145 0 M A A PITI PI_TIMES
146 a I, N N A A GEOM GEOMETRIC
147 M N A FACT FACTORIAL
148 , D N .1 A A BINO BI1OMIAL
149 I H m A MAGH MAGNITUDE
151 \ E £ A SCA2 SCAN
152 k m E A SCAj SCAN
161 r N N A CEIL CEILING
162 L k N A FLOO FLOOR
68
... . . . II I I II I ,
163 L D N H A A MA;.I MA1X4IMUm
165 I D H H A A RESI ESID'J1
166 4, m H V GRUP GRArE UF
167 t M H V GRAD GRADEDOWN
168 M K H A ROLL R OLL
169 ? D Hi H S S tEAL DEAL
180 = D E E A A EQJA EQLAL
.81 g D E E A A NOTE HOT EQUAL
182 D IH N A A LESS LESS THAP
183 D I1 H A A LTEQ LESS OR EQUAL
184 D H H A A GTE Q GREATERO" PEQUAL
185 .D H 1.1 A A GREA GREATER_THAil
191 M B A HOT HOT
192 A D 4 p A A AlNDt A11
193 A l, P P A A HAND 1.lAHD
194 v D B B A A OR OR
195 v D B B A A HOR IOF:
196 D D E E A A MKEM MEMBER OF
201 m K E A REV 2 REVER SE
202 M K E S REVi REVERSE
203 * D H E A A ROT2 ROTATE
204 e D H E A A ROT 1 ROTATE
205 M K E A TRAM TRANSFOSE-MONADIC
206 1 D I E V A TRAD TRANSPOSE-D'"ADIC
211 + D 1f E V A TAKE TAKE
212 4 D N E V A DROP DROP
213 / B E V A COM2 COMPRESS
214 D B E V A COM 1 COMPRESS
215 \ 9 3 E V A EP2 EXPAND
216 3 D a E V A EXP1 EXFAND
219 , D E E A A LAMI LAMINATE
231 a K H " MATI MATR :_INVERSE
232 Q D N H X y MATD MATRIXDIVIDE
69
241 o, D E E A A OUrE OUTER_PFODUCT
242 * D E E A A I NNE XH1ERPROr'UCT
301 D E' E E V A IHDO IrUE-._OF
304 T D N N a A EACO ENCOV E
305 D 1- A a DECO DECODE
306 m x K V EXEC EXECUTE
307 t D 1 N V a rYFO FORMAT-t, ,AIC
308 t m E A FURM FORAAT-MONWAD I C
70
*i
LESCOL
1234
SY MCOL
8
MDCOL
12
HK COL
16 18
SVXACOL
22 24
NHMECOL
28 29 30 31
FNAHMECOL
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
71
CUES
'HOW MANY ARGUMENTS DOES THE 'FItAMEI FUNCTION TAKE?'
'DOES Sl',S'M,'S2 EQUAL S2, vS'TR,'SI?'
'IF ONE ARGUMENT IS A VECTOR, THE OTHER ARGUMEOT MAY BE SCALAF: OR VECTOR
* (T/F)'
'IF ONE ARGUMENT IS A MATRIX,
THE OTHER ARGUME'T MUST BE A SCALAFR',Cr'
OR A MATRIX OF THE SAME SHAPE. (T/F)'
'WHAT RANK CAN THE LEFT ARGUMENT OF 1,FHAMEl BE?',RK
'WHAT RANK CAN THE RIGHT ARGUMENT OF fFllAM ,l SE?,'K
'DO THE ARGUMENTS ALWAYS HAVE TO HAVE THE SAME RANK?'
'CAN ',FNAME,' TAKE CHARACTER ARGUMENTS?'
'IF SO, WHICH ARGUMENT(S) CAN BE CHARACTER?',et
'DOES -,FNAME9' TAKE BOOLEAN (I OR 0) ARGUMENTS?'
'IF SO, WHICH ARGUMENT(S) MUST BE 9OOLEAN?',AP
AR
ENTER R FOR RIGHT,
L FOR LEFT, OR
B FOR BOTH
.EK
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX
A FOR ANY RANK
72
=I
2. Text variables
The following global variabl.es conz:nn th- bsic
text of the TUTOR course. They ir print.d in th . sans
order as th . lessons. The header above each va-iab1! is not
part of the text; it lists the lsson number, ths shor-
title of the variables, and the fall name of the fu.ction.
The first column control characters are omitted he-.
73
-... 1 , i
-IIi
101 NEGATIVE NUMBER NEGA
THE SY BOL - (UPSHIFT 2) IS USED ONLY TO ENTER NEGATIVE NUMiERS,
IT CAN BE USED ONLY I FRONT OF SCALARS (SINGLE NUMBERS),
NOT VARIABLE NAMES, ARITHMETIC EX'PRESSIONS, OR ARRAYS.
TO CHANGE ARITHMETIC SIGN USE THE SYMBOL - (UPSHIFT +)*
74
- VI
102 COJUGATE COHJ
THE SYMBOL + IS USED FOR THE MNADIC CONJUGATE FUNCTION,
THIS IS AN IDENTITY FUNCTION WHICH RETURN4S ITS ARGUMENT, AFTER
EVALUATION IF NECESSARY. IT TAKES NUMERIC AF:GUMENTS OF ANlY F:ANK
EXAMPLE: +2 = 2 +-3+2 => -1.
I
75
4
103 PLUS FL US
.,.,.,. ,,.,.,,,,,,",,,,.............
THE SYMBOL + IS USED FOR THE DYADIC PLUS FUNCTION,
THIS PERFORMS SIMPLE ADDITION Oil- NUMERIC ARGUMENTS OF ANY FANK.
FOR EXAMPLE: 2+2 -> 4 SPACING IS NOT IMPORTANT,
TO ADD A SCALAR TO EACH ELEMENT OF A VECTOR, E147ER EITHER S+v OR V+s.
Vl+V2 WILL ADD TWO VECTORS ELEMENT Bf ELEMENT. FOR EXAMPLE:
2+(3 4 5) => 5 6 7 (3 4 5)+2 =) 5 6 7
(3 4 5)+(5 6 7) =) 8 10 12
IF THE TWO VECTORS BEING ADDED ARE NOT THE SAME LENGTH,
YOU WILL GET A 'LENGTH ERROR'.
MATRIX ADDITION IS DONE AS FOLLOWS:
S+M OR M+S WILL ADD THE SCALAR S TO EACH ELEMENT OF THE MATRI, 14,
FOR EXAMPLE: IF A =) 1 2 THEN 3+9 = 5 AiN' M+3 4 5
34 67 67
M1+M2 WILL ADD THE MATRIX Ml TO THE MATRIX M2, ELEMENT B'Y ELEME;T,
FOR EXAMPLE: IF Ml = 1 2 AlNI M2 => 3 4 THEN Mi+M2 => 4 6
34 56 810
Ml AHD M2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT.
TRYING TO AiD A VECTOR TO A MATRIX WILL RESULT !H A IRANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS.
76
104 CHANGE-SIGN CH ..
THE SIt4OL (UPSHIFT 4) S USED FOR THE MOM'4tIIC CH |'4CE S5'0 UuCTxICI.
THIS CHANGES THE AR.ITHMETIC I'14 OF ITS NUMIERIC ARGUMEIT OF - . i-lK,
FOR EXAMPLE: -(l -2 3) = -1 Z -3.
NOTE THE DIFFEREICE BETWEEN - ND - (UPSHIFT 2)' WHICH INDICATEz.
NEGATIVE NUMBERS,
77
sufiea.
105 MINUS I,; L1
THE SYMBOL - (UPSHIFT +) IS USED FOR THE DTiAIC MINUS FUNCTION.
IT PERFORMS SIMPLE SUBTRACTION ON NUMERIC ARGUMENTS OF All" PAJIH
FOR EXAMPLE: 5-2 =) 3 -10--2 -3
TO SUBTRACT A SCALAR FROM EACH ELEMENT OF A VECTOR, ENTER V-E-
TO SUBTRACT EACH ELEMEN'T OF A VECTOR FROM THE SAME SCALAR, ENTER S-v,
V1-V2 WILL SUBTRACT EACH ELEMENT OF V2 FROM THE CORRESFOODING
ELEMENT OF V1.
V1 AND V2 MUST BE THE SAME LENGTH OR YOU WILL GET A 'LENIGTH EFRCP1.'
FOR EXAMPLE: (3 4 5)-2 =) 1 2 3 2-(37 4 5) -1 - -
(6 7 8)-(1 2 3) =) 5 5 5
ENTER M-S TO SUBTRACT THE SCALAR S FROM EACH ELEME11" OF THE MTFI' M,
ENTER S-M TO DO THE OPPOSITE.
FOR EXAMPLE: IF M => 1 2 THEN 4-M t> 3 2 AND M-2 ) -1 '
34 1 12
Mi-M2 SUBTRACTS MATRIX H2 FROM MATRIX MI, ELEMENT BY ELEMENT.
FOR EXAMPLE: IF Al = 1 2 AND M2 => 3 4 THEN M12-M1 Z 2 2
34 56 22
IF MI AND M2 ARE NOT THE SAME SHAPE, A 'LENGTH ERROR' WILL R-ESUL .
TRYING TO SUBTRACT A VECTOR FROM A MATRIX OR VICE-VERSA W.LL
PRODUCE A 'RANK ERROR',
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARFATS,
78
. .. ... I" . .. . .. . . . .. " " d. . ..... . I II I I.. . : --, .. .L" -- I "m '. . ... .
106 S IGUUM s G;-l
$.# $t t $ $ $ $ .... 50 X ... .............lot t $, $ $
THE S;*MBOL X IS USED FOR THE MOMADIC SIGHUM FUHCTION,
IT RETURNS THE ARITHMETIC SIGH OF THE ARGUMENT: 1 FOR. FOSITIVE I;UtrEFS,
-1 FOR HEGATIVE HUMSERS, AHD 0 FOR ZERO VALUES.
IT TAKES NUMERIC ARGUMEN.TS OF ANY RANK,
FOR EXAMPLE: x(3 12) 1 - X(3+2-5) =) 0
79
- F r
107 TIMES
THE SYMpOL x IS USED FOR THE DYTADIC TIMES FUHCTICN.
THIS PERFOFMS SIMPLE MULTIPLICATION Oil NUMERIC AFGUMENTS OF AN't SAN.K1,
FOR EXAMPLE: 2x4 => 8 ORDER Adt SPACING AF:E HOT IFCRTANT.
TO MULTIPY EACH ELEMENT OF A VECTOR Bf A SCALARP, ENTER SXV -: 'i.,
V1XV2 RESULTS IN THE FRODUCT OF CORRESFONZING ELEMEOTS OF V 1 ANt, L' .
FOR EXAMPLE: 3x(I 2 3) =, 3 6 9 (1 2 z)x2 =9 6
(1 2 3) x (2 4 6)= 2 3 13
IF VI AND V-1 ARE HOT THE SANE LENSTH, 'YOU WILL GET A ILENGTH EF., :FR
EITHER MXS OR SXA WILL MULTIFLY A MATRI' .'Y A ECALAR,
THE RESULT WILL BE A MATRIX." THE SAME SHAPE 4S 'A.
FOR EXAMPLE: IF M = 1 2 THEN* 3XN =, 3 6 4NZ MX3 3
3 4 9 12 9 12
M1XM2 WILL RETURN THE PRODUCT OF CORRESPOHDINO ELEAEOTS IN 04 Akt 4'.
K1 AHD M2 MUST SE THE SAME SHAPE OFP O J WILL GET a ILE-GTH EFRFC:'
FOR EXAMPLE: IF M1 1 2 1z 0'D M2 - 4 THEJ MJXM2 > 3 2
3 4 5 6 15 24
IT IS IMPORTANT TO NOTE THAT MULTIPLYING MATRIXES WILL N._T RESULT IN
IMATRIX MULTIPLICAT:ON1 (INUER PRODUCT OR DOT PRODUCT),
FOR INFORMATION OH INNER PRODUCT, REOUEST HELP ON *' (DOT OR PERIOD).
MULTIPL'ING A VECTOR WITH A MATPIX WILL RESULT IN A PANK ERROF'
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRATS.
80
108 RECIPFROCAL Li i
THE SYMBOL - (UPSHIFT +) IS USED FOR THE MOAtIC S:ECIF;.OCL PUlICTIO .
THIS RETURNS THE RESULT OF 1 DIVIDED B' THE AFGUMEN-T.
ITS ARGUMEN-T MUST BE tUMERIC AiD CAN BE OF AN" RANK,
HOWEVER, IF THE ARGUME34T HAS LUE ,Q, A' VOMIN EFROR. WILL -BULT,
FOR EAAMPLE: -1 2 3) ' 0 . 5 0 " 33 '17 3
31
p.-,
109 r, I IE i : T:
THE SYMBOL ; (UPSHIFT x) IS USED FOR THE I,'fDIC DIVISION FUr.CT-ON,
IT PERFORMS SIMPLE DIVISION O.N NUMERIC ARGUME'.ITS OF AN,- FAT-
FOR EXAMPLE: 6 2 = 3 -10 -4 =: 2.5
DIVIDING BY 0 RESULTS I H- I DOMAIN ERROR EXCEPT THOT 1.
TO DIVIDE A SCALAR BY EACH ELEMENT OF A '-'ECTOF;, EN#TER: S-v,
TO DIVIDE EACH ELEMENT OF A VECTOR Bf THE SAME SCALAF:, ENTER V-3*
Vl. 'V DIVIDES EACH ELEMENT CF Vj Bf THE CORR"E-FONDINc-G -_.EI.T OF '2.
VI AND V2 MUST BE THE SAME LEftGTH O: rOU WILL GF-T A 'L-tGTH EFF.-,
FOR E;-,MPLE: (3 4 5)-2 => 1.5 2 2.5 '- (3 4 5) =>1 .75 .
(3 6 9)(n- 2 3) => 3 3 3
ENTER St4M TO DIVIDE THE SCALAR S BY EACH ELEMENT OF THE MATRIY: 4.
M-S WILL DIVIDE EACH ELEMENT OF M BY S, BOTN OFEFATIONS FE ULT N
A MATRIX THE SAME SHAPE AS M,
FOR EXAMPLE: IF M => 1 2 THEN,.'M = 2 1 ' '- =, C.5 1
4 5 0.5 0.4 2 2.5Ml+M2 DIVIDES MATRIX Ml ?f MATRIX M2, ELEMENT Si ELEMENT,
FOR EXAMPLE: IF ml =' 2 4 AND M2 =) 1 2 THEN Ml-M2
=> 2 2
6 9 34 2
IF Al AND m2 ARE HOT THE SAME SHAPE, A 'LENGTH ERF:OI WILL FESULT,
TRYING TO DIVIDE A MATRIX BY A VECTOR OR VICE-VERSA WILL PRODUCE A
'RANK ERROR'.
THESE PRIHCIPLES CAN BE E-TENDED TO HIGHER LEVEL ARAYS,
82
77. ~ - - -
121 PAREN -4 FPS E
PARENTHESES ARE USED TO GROUP SYMBOLS Fnr. CORRECT PROCES3IHG Bf
THE APL IN1TERPRETER,
APL DIFFERS FROM EVEFY OTHER COMFUTER LANGUAGE IN THE WAY IT
rDETERMINES WHICH OFE1ATION IS PEPFORMED FIRST,
IT SIMPLY READS M:OM RIGHT TO LEFT--I BACKWR4DR,'--D,1) PERFORMS EACH
OPERArION AS IT GOES ALONG,
FOR EXAMPLE, 3x21 = 9 E'ECAUSE 2+1 > 3 A 0 3 , 9
i+2x3 =; 7 BECAUSE 2x3 6 A ' 1+6 =
PARENTHESES AFE USED TO OVERFSIDE THIS RIGHT-TO-LEFT RULE.
FOR EMAMPLE: '3x2)'1i =) 7 AND (1±2)x3 => ?
EXPESSCIQ WITHIA FARENTHESES APE EVALUATED FIRST--
ALSO FrO'M RIGHT 7;) LEF-,
USING r'AE RIGHT-rO-L-FT 1'ULE CAN ELMIIATE PAREN THESES,
PUT :JP',.3 ARENTHESES GENEROUSLT CAI- ELIMINATE CONFUSION,
83
-- - -
122 QUOTE Q.UOT
• oo~ o~ tl~t*t ** * , *l**., * * * 4** , *m*tQ***tt* **
THE OUOTE MAFRK I ( F'SHIPT k) IS USED TO ECLOSE CHARACTER DrTOz.
AFL ASSUMES THAT LErTERS (OF COMBINATIONS OF LETTERS ANtD NUtmBERS)
ARE VARIA&LE .F. FUCTIOJ NAMES LUNLESS THEJ ARE ENCLOSE: IM UOTEE.
FOR ENAiLE: IN THIS TUTORIAL,
HOW (TA-E VARXASLE U!AMEEI HOW)
'HOW' => HOW
YOU :-AN' ALSO USEC SY4BOLS ,ZT't' NUPERS AS, CHARACTER DATA,
84
I I J A
123P.ECIFICATION S FE c
,,,..., ..... ( I . . . .. . . . . . .
THE SYMBOL 1 S USED FOR EFECIFICATIOH,
IT ASSIGNS -HE VALUE OF THE RIGHT ARGUMENT TO THE VARIABLE HAMAE
WHIOW I=- THE LEFT ARGUM-ENT,
THE VAR I~rSLE HAME CAO BcE 40Yt COMBINATION OF LETTERS AND NUMBEFRS PUO
SYMBOLS AwE'r H O EsE~cS) WHICH BEGINS WITH A LErTEF , LENGTH IS
EFFELTIVELY U: LIMITEE,
THE RIGHT ARCUMEHT CAN BE EITHER CHARACTER OR PUMiERIC, OF ANY RANK,
TC SF-ECIFY A CHARACTER VARIAELE, ENICLOSE THE F IGHT ARSUMAE0T IN,
S7 fG&LE QUOTES (1) UNLESS 'T S5 AHOTHER CHARACTER VARIABLE,
IOTE rH4 THE VARIABLE CAN BE USED' IN) THE SAME LU'SE AS THE VALUE IS
Sr-ECIFTEE', FQRf; E_'?A4LE:
- 3+ 7 2 r~tZ5U'1_S li' HAVING VALU1E ' C0NE Y HAVIN4G VALUE5
N -flS. 1RESULTS I' 1, 411 AN I *LL HAIGVALUE
2~ 3 7 PES-JLTS IN c MAVING VECTCS VALUE (1 2 3)
V! 'ARL' RESULTS I0 V,' r-EUIS A CH1ARACTEP VECTOR: AFL
V-V1,' REStV.TS I N 91 BEING, A CHARACTER VECTOR: AFL
SEE HELP, OHN (UF* SHIFT P% FOR I NFOiRMQTIOH OHl SPECIFYjING MATRIX
VAR:AE'LES,
124 5HAF*E SHAP
'HE S'MBE3L p TS! IEI OF THE mO-tADIC SHAPE FUNCTION,
THIS RETUFRS A r1DE-.CRIFTIONI OF THE 5IZE OF ITS ARGUMEHT, WHICH CA,
BE 'UHERI-" f:t, , F£hi CTEFR OF -RAHK.
THE 'TMEOL C.'i LE USED TWICE (FpA) TO RETUH THE RANK OF ITS AF:GUMENT.
IF TiE .:,1F,'T I. - , OLAR, fS R'ETURNS plO HUMBEr: A EMPT'i VECTOR)
A SCALAR HAS NO DIMES1OU1, f f'S =) 0
E'.!- F.Ti-, ,V FET JRi.!Z- ONE N.UM ER WHICH REPRESENTS THE LENGTH OF
THE VECTOR' S OHE OMENSIOH F,'V = ) 1
THE ;HAr OF )TRI CS IS EXPRESSEr As3 A TWO-ELEM.EHIT VECTOR,
THE FIRFT ELEIMEl-Ti EIUOLS THE NUMBER OF ROWS (THE LEHGTH OF THE
FIRST ImE1' SIO) ) AND HThE SECOND ELEMENT EQUALS THE IIUMBER OF
COLUMOS (THE LEiNGTH OF THE SECOD DIMENSION).
POP EX<A*'RLE: IF ' => 1 2 3 THEN fm = 2 3 Ali t = 2
4 56
FOR HIGHER-LEVEL ARRAS, p WILL BE A VECTOR WITH AS MAN ELEMENTS AS
A HAS 1I1MEPSIONS. THE NUMBER OF COLUMNS WILL ALWAYS BE THE LAST
SLEMENT OF pA, THE PUMIER OF ROWS WILL ALWA'1S BE THE NE'XT-TO-LAST
ELEME.T, PRECEDED Bf THE HUMI'ER OF 'PAGES' OR PLANES, PRECEDED BY
T,4E N.JUMBER OF 'eOOKS' OR SPACES, AND SO OH,
POR E.0MPLE: 1F 0 I3 A 4-DIMEHSIOHAL APRAF*, ??D 4.IF pt' => 5 3 4 1 THEN D HAS 5 DOCI5S EACH WITH 3 R'GES, EACH OF
WHICCH HOS 4 F:OWS AND 2 COLUMNS, (THIS WOULD BE DISPLATED AS
FIFTEEN SUCCESSIVE 4X2 MATRIX<ES--THE FIRST THREE BEIHG THE FIRST
BOOk, THE SECOND THREE BEING THE SECOND BOOK, ETC.)
86
- . . .. " .. -
12 RESHAF'E R E H
THE 5T1*hOL p IS U'SED FOR THE DiADIC F:ESHAF'E FUNCTION.
THIS TAKES THE ELEMEHTS OF THE RIGHT ARGUMENT AND REARRAHGES THE,,i
ACCOF;RDIG TO THE SHAPE SPECIFIED PT THE LEFT ARGUMEMT*
THE LEFT ARGUmEOT MUST BE AH INTEGER SCALAR OR A VECTOR O"F ITEGER
ELEMEIT S.
T IE RIGHT . .HENT CA- BE NU ERIC OR. CHARACTEF:, CF A Y RA K,
IF THE LET ARGUMENT IS A SCALAR, THE RESULT WILL BE A VECTOR WITH
LENGTH EOUAL TO THE SCALAR, C3-ISISTINIG OF THE ELEMEHTS OF THE RIGHT
ARSUMENT, TAKEN IN ORDER TOP LEFT TO SOTTOr4 RIGHT,
WHEVl THERE ,RE NlOT ENOUGH ELCAETS IN THE RICGHT ARGUMENT,
THE FLtCT:O. W'LL START OVEF AOL. TAPE THE ELEMENTS IN ORDER AGAI,
AS ;4AN" TIMES AS HEC'SAYRf TO FILL THE VCCTOF,
FP" E:'.AM LE. 4f, =: 1 1 1 1
4?(AB') =) ABE
IF THERE ARE TOO MANY ELEMENTS OCJ THE R'IGHT, THE EXTRAS ARE OMITTED,
FOR EXAMPLE: Zz(1 2 3 4) Z 2
IP" THE LEFT ARGUMENT IS A VECTOR, THE ELEMENTS IODICATE, I1 ORDER,
LENGTH OF EACH rtIMENSIONI IN THE RESULT.
FOR EUAMPLZ: 2 2fl 2 3 4 => 1 2
3 4
THIS 13 ON1E WAr TO ENTER MATRIXES OR ARRAIS OF HIGHER DIMENSION.
USING A MATRIX OR HIGHER-LEVEL ARRAY AS THE LEFT ARGUMENT OF RESHAPE
WILL RESULT IM A 'RANK ERROR'
87
i _: ,
DRACKETS ERA C
r'fA4rIC SCIUAFE BRACKETS ARE USED TO INDEX. THE ELEMENTS OF AN A:FAj.
THEY CAO PE THOUGHT OF AS EHCLOSING SUBSCRIPTS,
THE LEFT ARGUMENiT (LEFT CF THE BRACKETS) CAN BE A HUMERIC OR CHARACTER
AA'Tl
OF ANY RANK, PUT NOT A SCALAR. INDEXING A SCALA. WILL RESULT
lit A 'RANK ESRORI
THE ;:GHT AR5UMEWNT <:ETWEEUi 7HE ?'R-CKETS) MUET PE OrE O5 .M4F3E
I0TEGER SCALAFR . OF VECtOF"S, SEPARATED 51 SEMICOLONS ) * THERE
,UST I-E 9: m4,i t AL .C zVECTORS AS THERE ARE I HIME 2IO0S IN THE
LEFT RDUHENT, G4" " 'AU P7:RORI WILL RESULT.
AI41 NUMErIC E:PFRES-,'11: WITHIN THE BRACKETS WLL EE EVALUATED AS IF
H EPRAC,<StS A;J:,.4EMIt'L(3:3- AR.E PAR:ENTHESES.
BRACKETS CA o -L 5-r, :E I.EED FOLL-W I :.C: TH HEzrE ~T DOL S:,/J e
FOR H>',:!" I 'O 'MAT IOUt, SEE 4ELP ON THE AF ROPSIATE SYMBOL.,
FCR !;-FE F7 )I IS a YCTOP WITH '.ALUE i3 4 5 i
vi 2] = 3 3 4 VlE+2] => 5 V1J+VC2J = 7
A PrOGrmmING LAN 3,UAGE'L 3 15) : APL
THERE Ii O;L'T -30E SALAR' OR VECTOR WITHI; THE BRACKETS BECAUSE
'JE':TORS HAVE O L ' ONE DIMENSIO ,.
ATR'IES REG UIRE TWO SUBSCRIPTS--TWO SCALARS OF VECTORS, SEPARATED
ki A SE;tICOLOH(;), WITHIN THE BE'ACKET.
THE FIRST UBSCRIPT REFERS TO THE ROW, THE SECOND TO THE COLUMO',
EOR E FAMPLE: IF H 1 2 3 THEN MI;1] =: 1 AND m[1 3; 2] 2 8
4 56
tO SELECT AN ENTIRE ROW (OR ROWS), ENTER THE ROW SUBSCRIPT FOLLOWED.
Of A SEMICOLON, WITH NO COLUMN SUBSCRIPT,
FOR EXAMFPLE: Mti;. =) 1 2 3
FOR ENTIRE COLUMN(S), LEAVE THE ROW SUBCRIPT BLANK AND ENTER A SEMI-
COLON FOLLOWED BY THE COLUMN SUBSCRIPT(S).
88
FORP EXAMFLE: IF M 1 FOR THE; Ml[;l2 z Fri
NIOTZ'Cr THAT ONE " CW OR ONE COLUMN OF A MATRrx Is SIMPLY A VECTOP,
NOT A jXC CR FX oTPXX, i4 SINGLE ELEM~ENT OF .1 MATPI' IS A
'-AAk o Alxi MATF;r JP A VECTOR OF LENGTH 1
THE USE 13F BPACI(ETS CAP BE E:<TEOrED TO HIGHER rDrMEiuSILINi Dr
r, SE'AICOLON A* 3 -SCA.R OP YECTOR FOR EACH DIMENSION.
FOP E!;AALE, IP pA 2 3 4 5, THE SECOND 1400KY THIRD rAGE, FIR:ST POW
(A'LL COJLUMNS, '? ?E cSELECTED PY SOTERI >G M[2; 3i; 1;
89
1 RAVEL P-. E
THE STMBOL , IS USED FOR THE MOHADIC RAVEL FUNCTION,
THIS FUNCTIOP CHA1GES ITS APGUHENT TO THE FORM OF A VECTOr, IT TAKES
E:THER INUME:IC OR CHPAACTER ARGUMEITS OF A-'Y FAIK.
TO CHANGE 4. SCAiL-A TO A VECTOR OF LENGTH 1, EMTER , S.
FOR C;AMLE: :,p £3 UT f13 =% 1
THIS CjIls F.E USEFUL TO EOSUSE THAT a VAR:ABLE IS A VECTOR WHEN
USIN, A CC.LRAr WOULD LEAL, TO AN ERROR (E,G. , I-')E;;ING).
VECTORS FMAIN Ul'CHANGE£, ST' P'ELLING,
A'rF:!'.ES AAE C1AilGED IdTO . SINGLE LONG VECTOR, 3TARTING WITH THE
T0 FOW Ai.T, REAI'TNG AC;:CO3 EACH POW FROM LEFT TO RIGHT,
3 4
TH SE RI:'CIF'LES C:>ml RE F, TENDEI. TO HIGHER LEVEL ARAS'$.
90
1,2 CATENATE CATE
....*** . . .... .* 9 # .* .. .s #....................
THE 3Y BOL I5 USeD FOR THE D'TA'DIC CATENATE FUNCTION,
HIS FUOCTIO14 WILL COMBIHE TWO SCALARS OF ARRAYS INTO A SINLE 4F:RA',
IT TAKES EITHER 'UMER.IC OP CHARACTER ARGUMNTS,
ENTERING 51S,2 WILL RESULT I.? C. VECTOR (51 S), FOR EQAFLE;
-1. WILL -HSIG_ THE VECTOR VALUE (1 ,. TO THE 'ARIABLE 'V.
VECTORS CAiO EASEL'; BE E>,TEH'DE' 'i CATEOIATIING SV OR ',S 3R VV.
FOR EXAMPLS: IF V => 1 2 THEN
v 1 ,v 0 1 I 2 1 2
CATEATING A SCALQR TO A MATrIX WlILL RESULT Irl a MATRI' WITH
ONE MORE COLUMN THAN.. THE MATRI" ARGUMENT, ALL E;!TRIES :i THIS
COLUMN WILL HAVE -HE YALUE Of- THE CALA. . FOR EXAMPLE:
I F H i 1 THEE ,H1 7'M >, 1 1234 534 345
CATEPATINC TW MATFI;,ES WILL RESULT It A MATRIX CONTAINING THE TWO
ORI GINAL MATc I XES S-I CE ?i *.DE
POTH MATRIXES MUST HAVE THE SAME NUMBER OF ROWS OR A 'LENGTH ERROR'
WILL RESULT,
FOR 7':AMR..E: IF MAj => I Aift' 41& 534 78
THEN IM2 ; 1 2 5 6 4; M2,Ml 5 6 1 2
3478 7834
fR YING TO CATENATE A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR'*
THESE PRINCIPLES CA4N BE EXTEND'ED TO HIGHER LEVEL ARRAYS,
FOR MORE INFORMATION ON DIFFERENT WAYS TO JOIN' ARPt'rS, SEE
MENU FOR LAMINATE.
91
_
12 INDEX _GEME AT OR D
THE 3'MEOL (LISHIFT 1) IS USE., FOR THE 9ONADIC INDEX' GEOERATIot.
-NC~TIO0N.
IT IS USED ',I'rH A SINGLE d0N-NEGA~TIVE INTEGER ARGUMENT (SCALAR, Or:
VECTOR OF LENGTH i)
IT rETUR.E A V~ECTOR 09' INTEGERS, ii ORDER. BEGINNtING WITH THE INDEX
OF4 11' AND~ EilG WI TH THE ARGUME'T.
FOR EXA.MPLE: 3 3) 1 2 (Ar EMPTT VECTOR)
THF I1IrE,0; OI 13 14OFNALLY' (Ell DEFAULT) jUSIN.,G L WINH A ruOo-INTECEP, NlEGATIV'E OR ASRAYf AFUMENT WlLL FF:OtUCZ A
92
.1 EflU:-T ION s-
THE SYMB.OL I/ IS USED FOLLOWINIG ANOTHER FUNCTION SYH4BOL AOD
FRECEDTNG A SINGLE A RGUMENT TO P'RODUCE THE MI;,Ert FUNCTION
CA.LLED REDU.CTION,
REDUCTION MAT S-E USE:, WITH- NUMERIC ARGUMqENTS OF ANYt RANi
REDUCTIfON AT ALSO 55,F USED' WITH CHARACTZR AROUMEOTS IF THE FUi;'CT:ON
TT 1S :A4EING COABXNZD WITH wCCEPTS CHARACTER A4FfUMENTS.
tiSI0G WITH 4 SCALAR SIHFL r RETURNOS THE SCALAR.
WHEN USED!W '*H A VECTOR, REDUCTION GIVES THE SAME EFFECI AS IU!SER:T:;"G
THE OTHER. ZUN-CTrOll SYVMOL [DETWEEN EO,:CH VALLIE OF THE VECTOR,
+"J ;! 6 5ECAUZE ++.t (21 3 4) A4 SEt:AUSE 224 ~ 2
WHENl US tUG R-EZ-UCTION, L)LWAyS R;E4EMEER A F , RCAG S FIGHT TO LEFT.,
- iU( 2 3) - E Ec;4isSz i- (2-3 ) 2 4
0OT IC E T H I PlD LC E T7H E F E CT C F B U MMA T ION W ITrH A LT E ;N1A T I'G SI1G 1,
WNEN USED WITH A M-T;;1 I,/ WILL FZFFIDRM AS IF EACH CCUJMN IS
A UN117. IT WlILL AD,, THE CORRESPONDING ELEME;ITS OF EACH COLLIM,
SO THAT THE AN-SWEF; WILL VE A VECTOR WITH AS r4A~f ELEMENTS AS
-HEfE W ER F 4CWS IN THE ARGUMENT,
9;,A P>ML E .IF i-M =, 2 4 THE +/ = 2
OFL AERI FC TO THIS AS WORKING 'ACr*OSS' OR 'OVER, THE COLUMNS,
S1:0QE COL UMNC ARE THE SECOND, CF TWO DIMENSIONS OF A MATRI:N,
THIS MEA0S THAT TH4E S'YMEbOL / WORKS 'OVER' THE LAST DIMEN1-SION,
TO REDUCE OVEF THE FIRST DIMENSION (E.G. ROWS OF A MATRIX), USE THE
S;M.O4L t SALT /h, IN. PLACE OF /.
THIS IS IMPOFRTAN4T WHEN WORKING WITH HIGHER-DIMEHISIOH4AL ARRAi-S,
-OF' ENfAMPLE, IN A THREE-DIMEIISION1- ARRAy OF c*AGES, ROWS, AND
93
_ MI, 74rLL ;EflUCE OVER WE C OLUMOS, OVER THE PAGES,
0TS RE DUO ODVTT 40 " DIMEPE I Oi, Ye"Cl MAy Sr ECI7FY T6E ElI MEUS~ 101t?:
I:F iC ETE 'O -OWiHOM THE t (CR THE S /\ kC
PO;7 EwOA!4LE, T3' PLUIS R.EDUCE OIVER, THE ROW- OF A THREE-DIMENBIci!AL
ArcA'k -L LED "A', -lT"P Tt2~o /2 O PLUS REDUCE
3UE 1TE 4'3ES, EPTER +t-Al. OR: -/EJ]Aa TO PLUS REDUCE A-VER
T!IE OCLUJMS, CUkTER. +/LA~ OF + CE3)CA,
THE E1AAP-E OF THE mINSWZR 41LL ,ZL4A;S B'E THE -SME AS THE SHAPC OF THE
,.L#EI UXITU CE .; "E I; RE DUJc EDI OVER,
FC-- E' A4hPLE: IF A 31 ,4 5
94
REL'LCTI11O0 F E D:
THE Yt MFOL / 7L T S USED FOLt-OWIN-G ANOTHER FUNCTIO S101L!H
FRECEDINO A STIGLE AR9GU.,E;-T TO PRODUCE THE WI:? ED FUNCTION
CA LLED RUCT ION.
REDCTIJMAr IcE USED WITH OUAEPIC AtRGUIMENTZ' OF ANY qAI!K.
FkEDIJCTTCN MAr ALSO BE USErO WITH C'HARACTER ARGUMEiNT! IF TH4E FUNCTION)
ISE BEIN4G COMBINIED 45T7H ACCFE T; CHARACTER ARGUHiEWITC
1II-G 7 WITH A SCALAR SIMPL FITLF0 THE ECALAR,
WHEN USED W:THi A VECTOR, RE=DUCTION 3O:VEE-, THE SA:mE E;71ECT 'B INSERTLiIS
TH4E OTHER FUNC:TION SYME-FCIL ?VTSEE) ECH VA'LUE OF THE VEZTIR,.
+A 1 2 3) E ECArLE 12+3E
WHEN UST NO CEDlCTIOI, ALMA' IS TE MEM4EFR AFL RE ADS RIG 7 H T TO LE FT
-76(1 2 ) '2 ECE 1-(2 U -5 E
NO0TICE TH-S '~DCE HE EFF7EC7 OF S-UMMATION. WITH A-LTERNAZTI"G Sl-mS
WHEN YciEE, WITH A MARN ILL PERFORM AS IF EACH ROW I5
A UNIT, IT WILL ADTHE COrRESFONEING ELEMENTS- OF EACH ROW,
-O THAT THE AN-SWER. WILL B'E A VECTOR WITH4 AS AN1i ELEmEJITS CS
THEC E MJERE CLUMNS 1145 TW RGUHE;/T.
;7-R EN AMPLE; IF ; M => 2 4 TH4EN- i*+W.M Z
AF,- UBSEF 2 R+EFER TO THIS A4S WOR)FK IN ACR;OSS'I OF lOVEF' THE FROWS.
S3INCE rrj'wS A.RE THE FIRS5T OF TWO DIMENSIOl!S O)F A MATP L"
THIS M~EANS THAT THE ST MOL -1 WORKS 'OVER' THE FIFST DIMENSION.
T 0RFEDUCE OVER T HE LAST 1)I1MENSI ON ( E.G,. COLUMN S OF A MA TF I1): USE THE
3fWBOL / 'i LACECF/
THI IS 1 IMPORTANIT WHE'l WOR KI NG WI TH HIGHEr -11IMENS IOHQL AFRAViS
FOF E0 AMPLE, -1*~ A THrEE-DIMENSIONAL ARFAi OF PAGES, ROWS, AND
AD-A140 17 APL (A PROGRAMMING LANGUAGE) TUTOR: AN ON-LNE iINSTRUCTIONAL EACILIT(U) NAVAL POSTGRADUATE SCHOOL
UN S MONTEREY CA K A LANES DEC 83
UCAEE h/h 5E9hEIEohEEEEmhhEEEEEEEEohEEEEEmhEmhEEohmhhEEEEII..EhhhEEEoshIEomhEmhhmhhmhI
32 12.2JL*6 -N
L6 0IIIII,____
1111iL - .4 111
MICROCOPY RESOLUTION TEST CHARTNATfONAL BURtAU Of SIANDARDS-1963-A
1
COLUMNSP / WILL REDUCE OVER THE COLUMNSY S OVER THE PAGES.
TC REDUCE OVER ANY DIMENSIONp "OU MAY SPECIFY THE DIMENSION IN
,*F;, LCETS FCLLOWING THE (OR THE /) STMBOL.
FOR EXAMPLE, TO PLUS REDUCE OVER THE ROWS OF A THREE-DIMENSIO1AL
ARRAY CALLED AA, ENTER +i[2]AA OR +/E2JAA. TO PLUS REDUCE
OVER THE PAGES, ENTER ,AA OR +/[l)AA, TO PLUS REDUCE OVER
THE COLUMNS, EHTER +/AA OR + 3]AA,
THE SHAPE OF THE AHSWER WILL ALWAYS BE THE SAME AS THE SHAPE OF THE
ARGUMEUT OMITTING THE DIMENSZON REDUCED OVER.
FOP EXAMPLE: IF fA =) 3 4 5
THEN F+/A 4 5 F+/23)A = 3 5 p+/A = 3 4
96
I + 1
141 EXPONENTIAL EX'PO
THE SYMBOL a (UPSHIFT P) IS USED FOR THE MONADIC EXPONEHTIAL FUNCTION,
IT RETURNS THE VALUE OF THE CONSTANT E TO THE POWER OF THE ARGUMENT,
IT TAKES NUMER.IC ARGUMENTS OF ANT RANK,
FOR EXAMPLE: *0 => 1 *1 - 2,718281828
*.5 =) 1.648721271
-(3 2) 20.08553672 .1753312832
97
142 POWER POWE
6 0 0 0 4 6 * 4 e e # e0 * & 0 6 0 0 *t $ $0 6 $ a # # #e . I
THE SYMBOL * (UPSHIFT P) IS USED FOR THE DYADIC POWER FUNCTION,
THIS RETURNS THE VALUE(S) OF THE LEFT ARGUMENT RAISED TO THE POWER OF
RIGHT ARGUMENT, ARGUMENTS ARE NUMERIC OF ANY RANX,
A HON-IHTEGER RIGHT ARGUMENT CAN BE USED TO OBTAIN ROOTS,
FOR EXAMPLE: 2*3 =) 8 3*0 =) 1 4*,5 => 2
TO RAISE EACH ELEMENT OF A VECTOR TO THE SAME POWER, ENTER VFF
TO RAISE A SCALAR TO A SERIES OF POWERS REPRESENTED BY A VECTOR.
ENTER S*V,
vliv2 RESULTS IN THE ELEMENTS OF Vi BEING RAISED TO THE POWER OF
THE CORRESPONDING ELEMEHT IN V2,
V1 AND V2 MUST HAVE THE SAME NUMBER OF ELEMENTS OR A 'LENGTH ERROR-
WILL RESULT,
FOR EXAMPLE: 39(l 2 3) =) 3 9 27 (1 2 3)13 =) 1 8 27
(2 3 4)*(5 4 3) =) 32 81 64
TO RAISE EACH ELEMENT OF THE MATRIX M TO THE SAME POWER S,
ENTER MkS, TO RAISE THE SCALAR S TO THE POWER OF EACH ELEMENT
IN THE MATRIX M, ENTER S*M,
THE RESULT WILL BE A MATRIX THE SAME SHAPE AS M,
FOR EXAMPLE: IF m :) 2 THEN 3aM :) 3 9 AND m*3 :) 1 8
3 4 27 81 27 64
MIRM2 RESULTS IN THE ELEMENTS OF M1 RAISED TO THE POWER
OF THE CORRESPONDING ELEMENT IN N2,
FOR EXAMPLE: IF Ml =) 1 2 AND 92 z) 4 3 THEN N1aM2 2) 1 8
34 21 9 4
IF ml AND m2 ARE NOT THE SAME SHAPE, A 'LENGTH ERROR- WILL OCCUR,
IF ONE ARGUMENT IS A VECTOR WHILE THE OTHER ARGUMENT IS A MATRIX,
THE RESULT WILL BE A 'RANK ERROR',
THESE PRINCIPLES CAN bE EXTENDED TO HIGHER LEVEL ARRAYS,
98
VI
143 HATURALLOG NATU
THE SYMBOL s (ALT 8) IS USED FOR THE MONADIC NATURAL LOG FUNCTION.
IT RETURNS THE VALUE OF THE POWER TO WHICH THE CONSTANT E MUST
BE RAISED TO EQUAL THE ARGUMENT, IN OTHER WORDS, ENTERING
OS WILL SOLVE THE APL EGUATION gN = S FOR N.
IT TAKES ONLY POSITIVE NUMERIC ARGUMENTS OF ANT RANK, USING 0 WITH
ZERO OR WITH NEGATIVE ARGUMEHTS WILL RESULT IN A IDOMAIN ERRORI.
FOR E AMPLE: 21 = 0 62.718281828 =) I
81.648721271 =) 0.5
FOR EXAMPLE: 8(3 2) = 1.098612289 0.6931471806
99
4
144 LOGARITHM LOGA
THE SYMBOL a (ALT 8) IS USED FOR THE DYADIC LOGARITHM FUNCTION,
THIS RETURNS THE LOGARITHM OF THE RIGHT ARGUMENT IN THE BASE OF THE
LEFT ARGUMENT, THAT IS, IT RETURNS THE VALUE OF THE POWER TO
WHICH THE LEFT ARGUMENT MUST BE RAISED TO EQUAL THE RIGHT AROUMENT,
ENTER L#R TO SOLVE THE EQUATION L*N = R FOR N,
ARGUMENTS ARE POSITIVE NUMERIC OF 4HNr RANK. USING S WITH ZERO OR WITH
NEGATIVE NUMBERS WILL RESULT IN A 'DOMAIH ERROR'. ENTERING j6S
WHERE S IS ANY NUMBER EXCEPT I WILL ALSO PRODUCE A 'DOMAIN ERROR',
FOR EXAMPLE: 106100 =) 2 211024 =) 10 901 =) 0
TO OBTAIN THE LOG OF EACH ELEMENT OF A VECTOR IN THE SAME BASE,
ENTER PgV.
TO DETERMINE THE LOG OF A SCALAR IN A VECTOR OF DIFFERENT BASES,
ENTER V&S,
vlov2 RESULTS IN THE LOG OF EACH ELEMENT IN1 V2 IN THE BASE OF
THE CORRESPONDING ELEMENT IN V1,
Vi AN4D V2 MUST HAVE THE SAME NUMBER OF ELEMENTS OR A 'LENGTH ERROR'
WILL RESULT.
FOR EXAMPLE: 30(3 9 27) =) 1 2 3 (2 4)016 =) 4 2
(2 3 5)@(4 9 25) =) 2 2 2
ANALOGOUS RESULTS ARE OBTAIN1ED FOR MATRIXES AND HIGHER LEVEL ARRAYS.
UNLESSS ONE ARGUMENT IS A SCALARy BOTH ARGUMENTS MUST BE THE SAME
SHAPE. OTHERWISE, A 'RANK ERROR' OR -LENGTH ERROR' WILL RESULT.
100
-I~ '- i' +IPI~' ' ; ' * + : + +
I' rTm +;._ .+ ... . .J airi i ~ m n i ~
145 P1 TIMES PITI
THE SYMB OL. 0 (UF'SHIFT 0) IS.. USED FOR THE NOMAICZ P. TIMES FUN.CTZIN.
IT RETURNS THE VALUE OF THE COHSTA14T PI TIMES THE ARGUMENT.
IT TAKES 4UHERIC ARGUMENTS OF AY RHK.
FOR EXAMPLE: 00 =' 0 o1 =) 3.141592654
Q.5 ) 1.570796327
o(3 -, = 9.424777961 -,.2B3185307
10
146 GEOMETRIC GEOM
THE SYMBOL a (UPSHIFT 0) IS USED. FOR THE DYADIC GEOMETRIC FUNCTIONS.
THESE INCLUDE THE MAIN TRIGINOMETRIC FUNCTIONS, THE LEFT ARGUMENT,
WHICH MUST BE AN INTEGER FROM -7 TO 7, DETERMINES WHICH FUNCTIOII
IS CALLED, THE RIGHT ARGUMENT, WHICH CAN BE A NUMERIC ARRAY OF
4iY RANK, REPRESENTS THE VALUE OF AN ANGLE IN RADIANS.
THE FOLLOWIG FUNCTIONS ARE REPRESENTED:
00' =) COS (ARCSIN Y) OR SIN1 (ARCCOS Y) WHERE IY1<1
JaT SIN Y -10'f ARCSIN Y WHERE I''(1
2"" ) COS Y -2" 1 ARCCOS Y WHERE I¥Y1{
30Y => TAN Y -30Y m) ARCTAN ;
40Y- COSH (ARCSINH Y) -40Y" ) SI.4H (ARCCOSH Y) WHERE I'I)l
50Y ) SINH Y -5O Y ) ARCSINH "
601' COSH Y -60T Y ARCCOSH Y WHERE Y~l
70Y TANH Y -7oY z) ARCTAH Y WHERE ITt (1
OTHER FUNCTIONS , SUCH AS SECANT, MUST BE CMOPUTED BY FORMULA,
FOR EXAMPLE: (REMEMBER al EUALS PI TIMES 1)
100 => 0 10el 0 10e.5 : 1
290 =) 1 2001 -1 280.5 = 1.743934249E-16
NOTICE THAT SOMETIMES A VERY SMALL NUMBER WILL APPEAR INSTEAD OF ZERO,
OR A VERY LARGE NUMBER WILL APPEAR INSTEAD OF A DOMAIN ERROR.
TECHNICALLY, THE TANGENT OF ONE-HALF PI DOES NOT EXIST, BUT-
39e,5 => 5.734161139E15 WATCH OUT FOR THIS:
102
147 FACTORIAL FACT
THE SYMBOL (ALT +) IS USED FOR THE MONADIC FACTORIAL FUNCTION.
IT RETURNS THE FACTORIAL OF HOU-NEGATIVE NUMERIC ARGUMEN4TS OF AN4Y RANK.
FOR EXAMPLE: :1 3 0 :)1 6 1
USING NON-ITEGER ARGUMEHTS PRODUCES THE GAMMA FUNCTIONI OF THE
ARGUMENT+1.
FOR EXAMPLE: .5 : .8862269255 (GAMMA OF 1,5)
103
- - IP 103
148 BINOMIAL BINO
THE SYMBOL (ALT +) IS USED FOR THE DYADIC BINOMIAL FUNCTION,
IT TAKES NUMERIC ARGUMENTS OF ANY RANK,
FOR POSITIVE INTEGER ARGUMENTS, L:R WILL RETURN THE NUMBER OF WAYS OF
TAKING R OBJECTS L AT A TIME.
THIS IS THE BIHOMIAL COEFFICIENT OF R OVER L, COMPUTED (:R). Lx:(R-L).
WITH NEGATIVE OR NON-INTEGER ARGUMENTS, THE BINOMIAL FUNCTION RETURNS
A VALUE BASED ON THE BETA FUNCTION,
FOR EXAMPLE: 3:4 => 4 BUT 4:3 =) 0
BECAUSE THERE ARE FOUR WAYS OF TAKING FOUR OBJECTS THREE AT A TIME,
BUT THERE IS NO WAY TO TAKE THREE OBJECTS FOUR AT A TIME,
THESE ANSWERS ARE BASED ON CONVENTION:
0:0 = 1 0:42 = 1 42'42 1
WHEN A SCALAR ARGUMENT IS PAIRED WITH A VECTOR ARGUMENT, THE FUNCTION
COMBINES THE SCALAR WITH EACH ELEMENT OF THE VECTOR IN TURN,
2:(3 4 5) z) 3 6 10 (3 4 5):5 =) 10 5 1 |
CORRESPONDING ELEMENTS OF TWO VECTOR ARGUMENTS ARE COMBINED.
(3 4 5).(5 6 7) m) 10 15 21
Vi AND V2 MUST HAVE THE SAME NUMBER OF ELEMENTS OR A 'LENGTH ERROR#
WILL RESULT,
WHEN A SCALAR ARGUMENT IS PAIRED WITH A MATRIX ARGUMENT, THE FUNCTION
COMBINES THE SCALAR WITH EACH ELEMENT OF THE MATRIX IN TURN,
FOR EXAMPLE: IF M =) I 2 THEN 31M =) 0 0 AND M:3 =) 3 3
34 14 10CORRESPONDING ELEMENTS OF TWO MATRIX ARGUMENTS ARE COMBINED,
FOR EXAMPLE: IF Ml =) 1 2 AND M2 =) 3 4 THEN M1:M2 =) 3 6
3 4 5 6 10 15IF Ml AND M2 ARE NOT THE SAME SHAPE, A 'LENGTH ERROR' WILL OCCUR,
IF ONE ARGUMENT IS A VECTOR WHILE THE OTHER ARGUMENT IS A MATRIX,
104
auk-,-jmmI
THE RESULT WILL ScE A 'RANK ERROR',
THESE PRINCIPLES CAN ScE EXTENDED TO HIGHER LEVEL ARRAYS.
105
149 MAGNITUDE MAGH?.
****t*****.**e**l et.G** o***** I * .. e,.,,.e,,,..,.,.....,....,,e ,,, ,
THE SYMBOL I (UPS H IFT 4) IS USED FOR THE MONADIC MAGNITUDE FUNCTION,
IT RETURNS THE ABSOLUTE VALUE OF NUMERIC ARGUMENTS OF A4Y RAl4K.
FOR EXAMPLE: 10 => 0 !(-3 -2 10) = 3 2 10
106
AI
A151 sc5 c
THE SYMBOL \ (UPSHIFT /) IS USED FOLLOWING A DYADIC FUNCTION SYMBOL,
PRECEDING A SINGLE ARGUMENT PRODUCING A MIXED FUNCTIO- CALLED SCA0.
SCAN MAY BE USED WITH NUMERIC ARGUMENTS OF ANT RANK.
SCAN MAY ALSO BE USED WITH CHARACTER ARGUMENTS IF THE FUNCTION IT IS
COMBINED WITH ACCEPTS CHARACTER ARGUMENTS.
USING \ WITH A SCALAR SIMPLY RETURNS THE SCALAR.
WHEN USED WITH A VECTOR, SCAN GIVES THE SAME EFFECT AS INSERTING
THE OTHER FUNCTION SYMBOL BETWEEN EACH VALUE OF THE VECTOR,
THEN OPERATING PROGRESSIVELY AS FOLLOWS*.
THE PIRST ELEMENT OF THE ANSWER WILL BE THE FIRST ELEMENT OF THE
ARGUMENT. THE SECOND ELEMENT WILL BE THE RESULT OF THE MAIN
FUNCTION OPERATING ON.! THE FIRST TWO ELEMENTS OF THE ARGUMENT.
THE THIRD ELEMENT OF THE ANSWER WILL BE THE RESULT OF THE mAIN
FUNCTIOP OFERATING AS IN REDUCTION ON THE FIRST THREE ELEMENTS
OF THE ARGUMENT, AN1D SO ON1
THE RESULT WILL ALWAYS BE THE SAME LEMGTH AS THE ARGUMENT.
FOR EXAMPLE:
+\(1 2 3) : 1 3 6 BECAUSE 1 =) 1, 1+2 =) 3, 1+2+3 :> 6
x\(2 3 4) : 2 6 24
WHEN USING SCAN, ALWAYS REMEMBER APL READS RIGHT TO LEFT WHEN IT IS
USING REDUCTION ON MORE THAN TWO ELEMENTS OF THE ARGUMENT.
-"(1 2 3) =% 1 - 2 BECAUSE I =) 1, 1-2 =) -1, 1-(2-3) =: 2
WHEN USED WITH A MATRIX, SCAN WILL PERFORM AS IF EACH COLUMN IS
A UNIT. THE FIRST COLUMN OF THE ANSWER IS THE FIRST COLUMN OF
THE ARGUMENT, THE SECOND COLUMN OF THE ANSWER IS THE RESULT OF
OPERATING ON THE FIRST TWO COLUMNS OF THE ARGUMENT, AND SO ON.
APL USERS REFER-TO THIS AS WORKING 'ACROSS' OR 'OVER' THE COLUMNS.
107
SINCE COLUMNS ARE THE SECOND OF TWO DIENSIOtS OF A MATRIX,
THIS MEANS THAT THE SYMBOL \ WORKS 'OVER- THE LAST DIMENSION,
TO SCAN OVER THE FIRST DIMENSION (E.G. ROWS OF A MATRIX), USE THE
SYM EOL It (ALT .)p IN PLACE OF \,
TrHS IS IWPORTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMPLE, IN A THREE-D'IMENSIONAL ARRAY OF PAGES, ROWS, AND
COLUMNS, \ WILL SCAN OVER THE COLUMHS, N OVER THE PAGES,
TO SCAN OVER AoY DIMENSION, "OU MAT SPECIFY THE DIMENSION IN
BRACKETS FOLLOWI?-G THE \ (OR THE ) SYMBOL,
FOR E'AAMPLE 7 TO PLUS SCAN OVER THE ROWS OF A THREE-DIMENSIONAL
ARRAY CALLED AA, ENTER +\[E)AA OR +lt[2AA, TO PLUS SCAN OVER
THE PAGES, ENTER + AA OR +\[E1AA, TO PLUS SCAN OVER THE COLUMNS,
ENTE: +\AA OR + [33AA,
THE RESULT WILL ALWAYS BE THE SAME SHAPE AS THE ARGUMENT,
108
152 SCAN SCAJ
THE SYMBOL (ALT ,) IS USED FOLLOWING A DYADIC FUNCTION SYMBOL AND
PRECEDING A SINGLE ARGUMENT PRODUCING A MIXED FUNCTION CALLED SCAN.
SCAN MA' BE USED WITH NUMERIC ARGUMENTS OF ANI RANK,
SCAN MAY ALSO BE USED WITH CHARACTER ARGUMEHTS IF THE FUNCTION iT IS
COMBINED WITH ACCEPTS CHARACTER ARGUMENTS.
USING WITH A SCALAR SIMPLY RETURNS THE SCALAR,
WHEN USED WITH A VECTOR, SCAN GIVES THE SAME EFFECT AS INSERTING
THE OTHER FUNCTION SYMBOL BETWEEN EACH VALUE OF THE VECTOR,
THEN OPERATING PROGRESSIVELY AS FOLLOWS:
THE FIRST ELEMENT OF T4E ANSWER WILL BE THE FIRST ELEMENT OF THE
ARGUMENT, THE SECOND ELEMENT WILL BE THE RESULT OF THE MAIN
FUNCTION OPER ATIUG ON THE FIRST TWO ELEMENTS OF THE ARGUMENT,
THE THIRD ELEMENT OF THE ANSWER WILL BE THE RESULT OF THE MAIN
FLINCTrON OPERATING AS 1I1 REDUCTION ON THE FIRST THREE ELEMENTS
OF THE ARGUMENT, AND SO ON,
THE RESULT WILL ALWAYS BE THE SAME LENGTH AS THE ARGUMENT,
FOR EXAMPLE:
+ (l 2 3) => 1 3 6 BECAUSE 1 => 1, 1+2 = 3v 1+2+3 =6
xk(2 3 4) = 2 6 24
WHEN USING SCAN, ALWAYS REMEMBER APL READS RIGHT TO LEFT WHEN IT IS
USING REDUCTION ON MORE THAN TWO ELEMENTS OF THE ARGUMENT,
-t(1 2 3) =% 1 -1 2 BECAUSE I =) 1, 1-2 =) -1, 1-(2-3) : 2
WHEN USED WITH A MATRIX, SCAN WILL PERFORM AS IF EACH ROW IS
A UNIT. THE FIRST ROW OF THE ANSWER IS THE FIRST ROW OF
THE ARGUMENT, THE SECOND ROW OF THE ANSWER IS THE RESULT OF
OPERATING O THE FIRST TWO ROWS OF THE ARGUMENT , AND SO ON.
APL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE ROWS,
109
SINCE ROWS ARE THE FIRST OF TWO DiIMENSIONS OF A MATRIx,
THIS HANAS THAT THE S'MEBCL ) WORKS 'OVER' THE FIRST D'MENSIO;i.
TO SCAN OVER THE LAST DIMENSION (EG. C3LUMNS OF A MATRIX), USE
THE SYMBOL \ (UFSH:FT /)I IN PLACE OF 3,
THIS IS IAFCRTAHT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMFLE, 11N1 A THREE-ZlIME;"SIONAL ARRA" OF PAGES, ROWS, AN.D
':3LU4NSY \ WILL SCAN OVER THE COLUMNS, OVER THE FAGES.
TO SCAN OVER AN'Y ,).IENSION? YOU MAI SPECIFY THE IMENSION IN
D.RACKETS FOLLOWING THE i (OR THE \) SYMBOL,
FOR EXAMPLE, TO PLUS SCAN OVER THE ROWS OF A THREE-DIMENSIONAL
AFPA' CALLED AA, ENTER +E23'AA OR +\'2]AA, TO PLUS SCAN OVER
THE PAGES, EdTER + AA OR +\[]AA. TO PLUS SCAIJ OVER THE COLUMNS,
ENTER +',,AA OR + t31AA,
THE RESULT WILL ALWAYS BE THE SAME SHAPE AS THE ARGUMENT,
110
"6:
[11 I
161 CEILI G CEIL
THE SYMBOL r (UPSHIFT S) IS USED FOR THE NONADIC CEILING FUfJCTION.
IT RETURNS THE V.ALUE OF NUMERIC ARGUMENTS OF ANY RANK, 'ROUNDED UP'
TO THE NEAREST INTEGER,
FOR EXAMPLE: r(-3.4 0 1.3 2) => -3 0 2
AL111
162 FLOOR FLOO
THE S'MPOL L (UPSHIFT D) IS USED FOR THE MONADIC FLOOR FUNCTION,
IT RETURNS THE VALUE OF NUMERIC ARGUMENTS OF ANY RANK, -ROUNIDED DOWN'
TO THE NEAREST INTEGER,
FOR E.AMPLE: L(-3.4 0 1.3 2) = 4 0 1 2
112
NOW&-
163 MAXIMUM M'I
THE SYMBOL r (UPSHZFT 3) IS USED FOR THE DYADIC MAXIMUM FUNCTION.
THIS RETURNS THE MAXIMUM OF ITS TWO ARGUMENTS, WHICH ARE NUMERIC
OF ANY RANK,
FOR EXAMPLE: 2r3 =) 3
TO CHECK A SCALAR AGAINST EACH ELEMENT OF A VECTOR, EHTER srv OR vrs.
viv2 WILL COMPARE TWO VECTORS ELEMENT BY ELEMENT, FOR EXAMPLE:
4r(3 4 5) =) 4 4 5 (3 4 5)r5 =) 5 5 5
(3 4 5)r(1 s 9) =) 3 5 9IF THE TWO VECTORS BEING COMPARED ARE NOT THE SAME LENGTH,
A 'LENGTH ERROR' WILL RESULT,
MATRIX COMPARISON IS DONE AS FOLLOWS*
sr'm OR MrS WILL CHECK THE SCALAR S AGAINST EACH ELEMENT OF
THE MATRI, H.
FOR EXAMPLE: IF M =) 1 2 THEN 3rm =) 3 3 AN4D Mr3 => 3 3
34 34 34m1r,2 WILL COMPARE THE MATRIXES M1 AND m2, ELEMENT BY ELEMENT,FOR EIIAMPLE: IF ml =) 1 2 AND 42 -' 3 4 THEN mlrM2 = 4
34 56 5 6M AND m2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT,
TRYING TO COMPARE A VECTOR TO 4 MATRIX WILL RESULT IN A 'RANK ERROR',
THESE PRINCIPLES CAN LtE EXTENDED TO HIGHER LEVEL ARRAYS,
113
164 MINIMUM 9M111I
THE SYMBOL L (UPSHIFT D) IS USED FOR THE DYADIC M114IMUM FUNCTION.
THIS RETURNS THE MINIMUM OF ITS TWO ARGUMENTS, WHICH ARE HUMER!C
OF ANY RANK,
FOR EA:AMPLE: 2L3 =) 2
TO CHECK A SCALAR AGAINST EACH ELEMENT OF A VECTOR, ENTER SLV OR VLS .
V1LV1 WILL COMPARE TWO VECTORS ELEMEUT BY ELEMENT. FOR EXAMPLE:
4L(3 4 5) => 3 4 4 (3 4 5)LS =) 3 4 5
(3 4 5)L(1 5 9) =) 1 4 5
7F THE TWO VECTORS BEING COMPARED ARE NOT THE SAME LEHGTH,
A 'LENGTH ERROR' WILL RESULT.
MAT 'I- COMFARISON IS DONE AS FOLLOWS:
SLO OR ALs WILL CHECK THE SCALAR S AGAINST EACH ELEMENT OF
THE MATRIX H.
FOR EXAMPLE t IF M =) 1 2 THEN 3LW = 1 2 ND ML3 =) 1 2
34 33 33mlLM-2 WILL COMPAF:E THE MATRIXES 11 AND m2, ELEMENT i ELEMENT.
FOR EXAMPLE: IF Ml = 1 ' AND m" :) 3 4 THEN 9L02 =) 1 2
34 56 34
Mj AND m2 MUST DE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT,
TRYIG TO COMPARE A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS,
114
165 RESIDUE RESI
***.***...,,,..,, .,...,t~ttt I *$.$$,..eec,....,.,...,.....,tt
THE SYMBOL I (UPSHIFT M) IS USED FOR THE DYADIC RESIDUE FUllCTION.
IT TAKES NUMERIC ARGUMENTS OF ANY RANK,
THE RESULT OF LIR IS THE REMAINDER WHEN R IS DIVIDED BY L, THIS IS
SIMILAR TO THE 'MODULO$ FUHC'TION ZN OTHER COMPUTER LANGUAGES.
FOR E;'APLE:
111.24 =' .24 101-4 2 -4110 :, 2
THE SIGN OF THE RESULT IS ALWAYS THE SAME AS THE SIGN OF THE LEFT
ARGUMENT. IF THE SIGNS OF THE ARGUMENTS DO HOT AGREE, THE RESULT
IS OBTAINED BY ADDING THE SMALLER ARGUMENT TO THE LARGER OE
REPEATEDLf UNTIL THE ABSOLUTE VALUE OF THE RESULT IS LESS THAN
THE ABSOLUTE VALUE OF THE SMALLER ARGUMENT.
WHEN A SCALAR ARGUMENT IS PA:RED WITH A VECTOR ARGUMENT, THE FUNCTION
COMBINES THE SCALAR WITH EACH ELEMENT OF THE VECTOR IN TURN.
21(1 2 3 4 5) =) 1 0 1 0 1 (1 2 3 4 5)13 =) 0 1 0 3 3
CORPESPONDIHG ELEMENTS OF TWO VECTOR ARGUMENTS ARE COMBINED,
(1 1.5 2)1(1 2 3) = 0 0.5 1
Vj AND V2 MUST HAVE THE SAME HUMBER OF ELEMENTS OR A 'LENGTH ERROR'
WILL RESULT.
WHEN A SCALAR ARGUMENT IS PAIRED WITH A MATRIX ARGUMENT, THE FUNCTION
COMBINES THE SCALAR WITH EACH ELEMENT OF THE MATRIX IN TURN.
FOR EX AMPLE: IF M =) 1 2 THEN 31W M 1 2 AND m3 =) 0 1
34 01 03
CORRESPONDING ELEMENTS OF TWO MATRIX ARGUMENTS ARE COMBINED.
FOR EXAMPLE: IF M1 :) 1 2 AND M2 x) 3 4 THEN MllM2 :) 2 2
34 56 2 2
IF MI AND M2 ARE NOT THE SAME SHAPE9 A 'LENGTH ERROR' WILL OCCUR,
IF ONE ARGUMENT IS A VECTOR WHILE THE OTHER ARGUMENT IS A MATRIX,
115
_ I,
THE RESULT WILL BE A IRA14K ERROR',
THESE PFRINCIPLES CAN BE SXTEA4DED TO HIGHER LEVEL ARRAYS,
116
166 GRADEUP 0RUP
THE SYMBOL 4 (ALT 4) IS USED FOR THE MONADIC GRADE UP FUNCTION,
IT TAKES A NUMERIC VECTOR ARGUMENT AND RETURNS A VECTOR OF THE
INDEXES OF THE ELEMENTS IH ORDER FROM SMALLEST TO LARGEST.
IN OTHER WORDS, THE FIRST ELEMENT IN THE RESPONSE IS THE INDEX
OF THE SMALLEST ELEMENT I.N THE INPUT. THE LAST ELEMENT IN THE
RESPONSE IS THE INDEX OF THE LARGEST ELEMENT IN THE INPUT,
EOUAL VALUES WILL BE GRADED IN ORDER FROM LEFT TO RIGHT,
FOR EXAMPLE: 4 4 8 6 3 => 4 1 3 2
BECAUSE THE FOURTH ELEMENT OF THE INPUT (3) IS THE SMALLEST, ETC.
THIS CAN BE USED TO SORT A VECTOR BY COMBINING WITH INDEX< BRACKETS:
IF V ='" 4 8 6 3 THEN VAVJ =) 3 4 6 8
ON THE OTHER HANDI 4*V WILL PRODUCE A VECTOR OF THE POSITION NUMBERS
(RAIK ORDER) CORRESPONDING TO THE INPUT VECTOR,
FOR EX<AMPLE, 4 4 8 6 3 =? 24 3 1
SINCE 4 IS THE SECON4D SMALLEST ELEMENTY 8 IS THE FOURTH SMALLEST, ETC,
117
L _ I
167 GRADEDOWN GR AD
THE SYMBOL f (ALT 3) IS USED FOR THE MONADIC GRADE DOWN FUNCTION.
IT TAKES A NUMERIC VECTOR ARGUMENT AND RETUFINS A VECTOR OF THE
INDEXES OF THE ELEMENTS I ORDER FROM LARGEST TO SMALLEST,
IN OTHER WORDS, THE FIRST ELEMENT IN THE RESPONSE IS THE INDEX
OF THE LARGEST ELEMENT III THE INPUT, THE LAST ELEMENT IN THE
RESPONSE IS THE INr'E:t OF THE SMALLEST ELEMENT IN THE INPUT.
EQUAL VALUES WILL BE GRADED IH i3RDER FROM LEFT TO RIGHT.
FOR EXAMPLE: 4 8 6 3 = 2 3 1 4
EECAUSE THE SECOND ELEMENT OF THE INPUT (8) IS THE LARGEST, ETC.
THIS CAN BE USED TO SORT A VECTOR BT COMBINZNG WITH INDE' BRACXETS:
IF V =) 4 8 6 3 THEN VrTV3 = 8 6 4 3
ON THE OTHER HAND, f lV WILL PRODUCE A VECTOR OF THE POSITION NUMBERS
(IN REVERSE ORDER) CORRESPONDING TO THE INPUT VECTOR.
FOR EX'AMPLE: *T 4 8 6 3 =) 3 1 2 4
SINCE 4 IS THE THIRD LARGEST ELEMENT, 8 IS THE LARGEST, ETC.
I.
168 ROLL ROLL
THE SYMBOL P (UPSHIFT 0) IS USED FOR THE MONADIC ROLL FUNCTION,
THIS S A RANDOM NUMBER GENERATOR WHICH TAKES POSITIVE 1INTEGER
ARGUMENTS AND RETURNS A RANDOMLY SELECTED INTEGER UP TO THE
VALUE OF THE ARGUMENT,
THE LOWEST PCSSIILE VALUE WHICH CAN BE RETURNED IS NORMALLY (BY
DEFAULT) 1.
USING I WITH NEGATIVE ARGUMENTS OR ZERO PRODUCES A 'DOMAIN ERROR'.,
FOR EXAMPLE: ?3 =) EITHER I 2y OR 31 WITH EGUAL PROBABILITY
WHEN USED WITH VECTORS, ROLL RETURNS A VECTOR WITH EACH NUMBER
SELECTED RANDOMLY FROM THE RANGE DETERMIHIHED BY THE CORRESPONDING
VALUE IN THE ARGUMENT.
FOR E",AMPLE,
?3 3 3 =) 1 1 2 OR 1 3 2 OR 3 3 2 OR 2 1 3 ETC.
?6 SIMULATES THE ROLLING OF A PAIR OF DICE,
ROLL CAN BE USED WITH MATRIXES OR HIGHER LEVEL ARRAYS IN A SIMILAR
FASHION.
4 j
169 DEAL DEAL
THE SI-MBOL ? (UFSHIFT Q) IS USED FOR THE DYADIC DEAL FUNCTION,
THE RESULT OF THIS FUNCTION IS AN ARRAY OF RANDOM NUMPERS,
THE SHAPE OF THE ARRAY IS DETERMINED BY THE LEFT ARGUMENT,
THE HUMBERS ARE RANI'OMLY SELECTED FROM THE POSITIVE INTEGERS
UP TO THE VALUE OF THE RIGHT ARGUMENT, WITH NO REPLACEMENT,
THAT IS, A NUMBER CANNOT APPEAR TWICE IN THE RESULT,
BOTH ARGUMENTS MUST BE A POSITIVE SINGLE NUMBER (SCALAR OR VECTOR
OF LENGTH 1)v AND THE RIGHT MUST EQUAL OR EXCEED THE LEFT,
USING HIGHER-ORDER ARGUMENTS PRODUCES A 'RANK ERROR'.
USING NEGATIVE ARGUMENTS OR ZERO PRODUCES A IDOMAIN ERROR',
FOR EXAMPLE: 2?2 = 1 2 OR 2 1 BUT NOT 2 2 OR 1
5?52 SIMULATES THE DEAL O A HAND OF CARDS,
120
BI
is0 EQUAL Efl
THE SYME:,L = (UPSHIFT 5) IS USED FOR THE DYI'AIC EOUALS FUHCTION.
THIS COMFARES NUMERIC Of; CHARACTER AR:GUMENTS OF ANY RANK,
IT ETURUS 1 FOF: EACH ELEMENT OF THE LEFT ARGUMENT THAT IS ICEOITICAL
TO THE CORRESPONDI.G ELEMENT OF THE RIGHT ARGUMENT, AND 0 FOF
EACH ELEMENT THAT (S NOT,
FOP EALE: 2-2 => 1 2=4 = 0 A'=, = 0
TO COMFARE A SCALAR TO EACH ELEMENT OF A VECTOR,
ENTER EITHER S=V OR V=S,
2=2 3 4) => 1 0 0 (3 4 5>=5 =) 0 0 1
V1=V2 WILL COMPARE TWO VECTORS ELEMENT BY ELEMENT. FOR EXAMFLE:
'THIHNK =-THANKl =, 1 1 0 1 1
'F THE TWO VECTORS ElEIN5 COMPAREI ARE NOT THE SAME LENGTH,
'OU WILL SET 4 'LENGTH ERROR',
MATRIX CCMFARISOl# IS PONE AS FOLLOWS:
S M OR M=S WILL COMPARE THE SCALAR S TO EACH ELEMENT OF THE MATPRI': M,
FOR EXAMFLE: IF H = 2 THEN 3=M => 0 0 AND M=3 0 0
34 1 0 10
M1l2 WILL COMPARE THE MATRIX NJ TO THE MATRIX M2, ELEMENT BY ELEMENT.
FOR E.'AMPLE: IF NJ =) HOW AND 92 => OOH THEN m _ 2 => 0 1 0
NOW wow 0 1 1
NM AND M2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT,
COMPARING A VECTOR TO A MATRIX WILL RESULT IN A 'RAN4K ERROR
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRA'i'B.
121
181 NOTEOUAL HO1 OE
THE SYMPOL ; (UPSHIFT 8) IS USED FOR THE fAI'IC NOT EQUAL FUNCTION,
THIS COMPARES NUmERIC OR CHARACTER ARUMENTS OF ANY RAHK,
IT RETURNS I FOR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS NOT EaUAL
TO THE COPRESPONE'rNG ELEMENT OF THE RIGHT ARGUMENT, AND 0 FOR
EACH ELEMENJT THAT IS,
FOR E'AMFLE: 2 g =; 0 2i4 = 1 'A''S' =. 1
TO COMF4RE 4 SCALAR TO EACH ELEME NT OF A VECTOR,
ENT-R EITHER SgV OR VAS.
2X(2 3 4) => 0 1 1 (3 4 5)$5 : 1 1 0
Vl tV WILL COMPARE TWO VECTORS ELEMENT PY ELEMENT, FOR EXAMPLE:
'THINKI',iTHANK' =) 0 0 1 0 0
lF THE TWO VECTORS BEING COMPARED 4RE ICT THE SAME LENGTH,
YOU WILL GET A 'LENGTH ERROR I
MATRI', COMPARISON IS DONE AS FOLLOWS:
S$1 OR M$S WILL COMPARE THE SCALAR S TO EACH ELEMENT OF THE MATRIX M,
FOR EXAMPLE : IF N =, 1 2 THEN 3$M => 1 1 AND M$3 >
34 0 1 01
992 WILL COMPARE THE MATRIX MI TO THE MATRIX M2n ELEMENT B" ELEMENT,
FOR EXAMPLE: IF ml =) HOW AND m2 =) OOH THEN M1#42 = 1 0 1
HOW wOW 1 0 0
MH ANH' M2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT.
COMPARING A VECTOR TO A MATRIX WILL RESULT I A 'RANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS,
122
1t
182 LESS THAN LE-5
THE SYMBIOL , (U'SHIFT 3) IS USED' FOR THE DYAD'IC LESS THAN FUNCTIOlI,
THIS COMPARES NUMERIC ARGUMENTS OF ANY RANK,
IT RETUR.S 1 FOR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS LESS
THAN THE CORRESPONDING ELEMENT OF THE RIGHT ARGUMENT, AND 0 FOR
CAC:A ELEMENT THAT IS NOT.
FDR E;AMLE: 22 : 0 2(4 : 1 1
TO COMAFRE A SCALAR TO EACH ELEMENT OF A VECTOR,
ENTER EITHER S(V OR V(S. ORDER IS IMPORTANT,
2 1( 2 3) => 0 0 (3 4 5)(5 =) 1 1 0
V1(V2 WILL COMFARE TWO VECTORS ELEMENT BY ELEMENT, FOR EXAMPLE:
(1 2 3((1 3 5) =' 0 1 1
lF THE TWO VECTORS BEING CDIMP4RED ARE 14OT THE SAME LENGTH,
YOU WILL GET A ILENGTH ERROR
AATRI. COMPARISON IS DONE AS FOLLOWS'
S(H OR M(S WILL COMPARE THE SCALAR S TO EACH E.EMENT OF THE MATRIX M,
FOR E:,AMPLE1 IF M ' 12 THEN 3(M =) 0 0 AND 3 11
34 0 1 0 0
MI(M2 WILL COMPARE THE MATRIX M TO THE MATRIX M-2, ELEMENT BY ELEMENT,
FOR EXAMPLE: IF MI =) 1 4 AND M2 6) 2 THEN &1M2 = 1 1
47 53 10
Mi AN'D MI2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT.
COMPARING A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS,
123
t . ,
133 LESS OR_ EUAL LTE,
THE S'TM1BOL _ (UPSHIFT 4) IS USED FOR THE DYADIC LESS THAN OR EOUAL TO
FUNCTION. THIS COMPARES NUMERIC AF.GUMENTS OF Allf RANK,
IT RETUR-S I FOR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS LESS THAi!
OR EOUAL TO THE CORRESPOHDiIG ELEMENT OF THE RIGHT AF:3UMENT, AND
A FOR EACH ELEMENT THAT IS NOT,
FOR EXAMPLE: 1<1 = 1 254 = 1 2-2 0
TO COMPARE 4 SCALAR TO EACH ELEMEENT OF A VECTOR,
ENTEF EITHER S(V OR V(., ORDER IS IMPORTANT,
211 2 3) => 0 1 1 (3 4 5)15 =) 1 1 1
JI'V2 WILL COMFARE TWO VECTORS ELEMENT BY ELEMENT. FOR E;XAMFLE:
(1 2 3)-(l 3 5) =) 1 1 1
IF THE TWO VECTORS BEING COMPARED ARE NOT THE SAME LENGTH,
YOU WILL GET A 'LENGTH ERROR' .
MATRIX, COMPARISON IS DOPE AS FOLL3WS:
SM OR M(S WILL COMPARE THE SCALAR S TO EACH ELEMENT OF THE MATRIX M.
FOR E,AMPLE: IF M => 1 2 THEN 31M =: 0 0 A D M(3 =) 1 1
34 11 10
M1<M2 WILL COMPARE THE MATRIX Ml TO THE MATRIX M2, ELEMENT BY ELEMENT.
FOR EXAMPLE: IF Al =) 1 4 AND m2 =) 2 6 THEN Mli2 =) I 1
47 53 1 0
MI AND M2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT.
COMPAR114G A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS,
124
mm
134 GREATEROR_EQUAL 3TEO
THE SYMBOL (UPSHIFT 6) IS USED, FOR THE DiADIC GREATER THAt Cr EQUAL
TO FUNCTION, THIS COMPARES NUMERIC ARGUMENTS OF ANY RAs4,
IT RETURNS I FOR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS GREATER
THAN OR EaUAL TO THE CORRESPOHDIIG ELEMENT OF THE RISHT ARGUMENT,
AND 0 FOR EACH ELEMENT THAT IS NOT,
FOR EAMPLE: 212 =, 1 214 =. 0 2- = 1
TO COMFARE A SCALAR TO EACH ELEMENT OF A VECTOR,
E1NTEP EITHER S)V OR V S, ORDER IS ZIPORTANT,
22(1 2 3) =Y 1 1 0 (3 4 5)15 =, 0 0 1
Vj' V WILL COMPARE TWO VECTORS ELEAET BY ELEMENT, FOP EXAMPLE:
(1 2 3)-(1 3 5) =, 1 U 0
IF THE TWO VECTORS PEING COMPARED ARE NOT THE SAME LENGTH,
yOU WILL GET A ILTNGTH ERROR'.
AATRI', COMPARISON IS DONE AS FOLLOWS:
s'm OR m±s WILL COMFARE THE SCALAR S TO EACH ELEMENT OF THE MATRIX M,
FOR E-AMPLE' IF M => 1 2 THEN 3 =M AND M)3 => 0 0
34 10 11M4j ,' WILL COMPARE THE MATRIX MI TO THE MATRIX M2 ELEMENT BY ELEMENT,
FOR EXAMPLE: IF Hi =, 1 4 AD M2 =) 2 6 THEN M1UM2 => 0 0
47 53 0 141 *NtD M2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR- WILL RESULT,
COMPARING A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR',
THESE PRINCIPLES CAN DE EXTENDED TO HIGHER LEVEL ARRAYS,
125
].5 GREATER THAIH GREA
*...*,*.********** >* ).,.*...**,*.*........
THE SYMBOL (UPSHIFT 7) IS USED FOR THE DYAD'IC GREATER THAN
FUNCTION. THIS COMPARES NUMERIC ARGUMENTS OF AHY RANK,
IT RETUR1S 1 FOR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS GREATER
THAN THE CORRESPONDING ELEMENT OF THE RIGHT ARGUMENT, AND 0 FOR
EACH ELEMENT THAT IS NOT.
FOR E"AMPLE: 2>2 =: 0 4>2 =) 1
TO COMPARE A SCALAR TO EACH ELEMENT OF A VECTOR,
ENTER EITHER S)V OR V>S. ORDER IS IMPORTANT.
2)1., 2 3) =' 1 0 0 (3 4 5))5 =) 0 0 0
V1)V2 WILL COMPARE TWO VECTORS ELEMENT BY ELEMENT, FOR EXAMPLE:
(1 2 3))(1 3 5) => 0 0 0
IF THE TWO VECTORS BEING COMPARED ARE NOT THE SAME LENGTH,
YOU WILL GET A 'LENGTH ERROR'.
,ATRIl- COMPARISON IS DONE AS FOLLOWS:
S)M OR M)S WILL COMPARE THE SCALAR S TO EACH ELEMENT OF THE MATRIX M.
FOR EXAMPLE: IF M => 1,2 THEN 3)M = I 1 AND 9)3 =) 0 0
34 00 0 1
M1l.M2 WILL COMPARE THE MATRIX Mj TO THE MATRIX M2v ELEMENT BY ELEMENT.
FOR EXAMPLE: IF Mi :> 1 4 AND 92 =I 2 6 THEN M1)M2 =) 0 0
47 13 11
ml AND M2 MUST BE THE SAME SHAPE OR A 'LE4GTH ERROR' WILL RESULT.
COMPARING A VECTOR TO A MATRIX WILL RESULT IN A 'RANK ERROR'.
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL ARRAYS.
126
, I
191 HOT NOT
THE SM' 4OL . (UPSHIFT T) IS USED' FOR THE MOHADIC NOT FUNCTION,
IT TAKES AO ARGUMENT OF A14Y RANK WHICH CONSISTS OHLY OF J. APHr O5,
Ali1', RETURNS THE LOGICAL INVERSE, THAT IS, I'S ARE CHANGED TO 0'S
AN-ID 0'S ARE CHANGEDI TO 1'S,
FOR EXAMPLE "i 0 0 1 = 0 1 1 0
127
192 AND
THE STMBOL A (UPSHIFT 0) IS USED FOR THE DYADIC AND FUNCTION.,
IT TAKES ARGUMENTS OF AN'Y RANK WHICH CONSIST ONLY OF I'S AND 0'S.
THIS FUNCTION RETURNS 1 WHERE BOTH ARGUMENTS ARE lj AND 0 OTHERWISE,
THE ORDER OF THE ARGUMENTS IS NOT IMPOPTAHT, BUT ENTERING AN ARGUMENT
WHICH IS NOT 1 OR * WILL PRODUCE A 'DOMAIN ERROR',
FOR EXAMPLE: JAI I . AO => 0 0A =) 0
TO COMPARE A SCALAR TO EACH ELEMENT OF AN ARRAY,
ENTER EITHER SAA OR AAS, FOR EXAMPLE, IF V 2 -3 0
l^(XV) => 1 0 0 (v=2) A v[l]=2 = 1 0 0
AIA42 WILL COMPARE TWO ARRAYS ELEMENT BY ELEMENT, FOR EXAMPLE:
(v)-3) A (V(2) = 0 0 1
Xp Ml=> 1 0 AND 2 =) I THEN MlAM2 = 1 0
1 0 00 00
Al AND A2 MUST BE THE SAmE SHAPE OR A 'LENGTH ERROR' WILL RESULT,
COMPARING TWO ARRAYS OF DIFFERENT RANK, FOR EXAMPLE A VECTOR AND A
MATRIX, WILL RESULT Iv A 'IRANK ERROR',
128
. .. I
193 NAN.1D N-1 A N
THE SYMBOL * (4LT 0) IS USED FOR THE DYfADIC NOT AND FUICTION,
IT TAKES ARGUMENTS OF AN' RANK WHICH CONSIST ONLY OF 1'S AND O'S,
THIS FUNCTION RETURNS 1 WHERE ONE OR NEITHER OF THE ARGUMENTS ARE I,
AND 0 OTHERWISE (WHERE BOTH ARE 1).
THE ORDER OF THE ARGUMEOTS IS NOT IMPORTANT, BUT ENTERING AN ARGUMENT
WHICH IS NOT 1 OR W WILL PRODUCE A 'DOMAIN ERROR',
FOR SXAM PLE: :1 = 0 LA0 =) 0a0 => 1
TO COMPARE A SCALAR TO EACH ELEMENT OF AN ARRAT,
ENTER EITHER SAA OR 4AS, FOR EXAMPLE, IF V 2 -3 0
1A(XV) = 0 1 1 (v=2) A V[1]=2 =} 0 1 1
4A1A2 WILL COHPARE TWO ARRAYS ELEMENT B'f ELEMENT, FOR EXAMPLE:
(V)-3) A v(2; =) 1 1 0
IF MI => 1 0 AND 02 = 1 1 THEN AM*m2 =) 0 1
1 0 00 1 1
Al AND A2 MUST IE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT,
COMPARING TWO ARRATS OF DIFFERENT RANK, FOR EXAMPLE A VECTOR AND A
MATRIX, WILL RESULT IN A 'RANK ERROR',
129
[i ,, r . . . . .l ll l " '" '
. .. ... .. . ." -
194 OR OR
THE SYMBOL v (UPSHIFT 9) IS USED FOR THE Yt'ADIC OR FUNCTION,
IT TAKES ARGUMENTS OF ANY RANK WHICH CONSIST OHLY OF 1'S AND O'S,
THIS FUNCTION RETURNS 1 WHERE ONE OR BOTH ARGUMENTS ARE 1,
AND 0 OTHERWISE (WHERE BOTH ARE 0).
THE ORDER OF THE ARGUMENTS IS NOT IMPORTAHT, BUT ENTERING AN AFGUMENT
WHICH IS HOT I OR 0 WILL PRODUCE A '.DOMAIN ERROR'.
FOR EXAMPLE: lvi = 1 lv0 = 1 0v = 0
TO COMPARE A SCALAR TO EACH ELEMENT OF AN ARRAf,
ENTER EITHER SvA OR AvS. FOR EXAMPLE, IF V ) 2 - 0
lv(xV) = 1 1 1 (V=2) v Vll]=3 = 1 0 0AlvA2 WILL COMPARE TWO ARR.AYS ELEMENT BY ELEMENT. FOR E.XAMPLE:
(v>-3) v (9B2) =' 1 1 1
IF 41 =) 1 0 41NID A2 =) 1 1 THEN MlvMn2 => 1 1
10 00 10
Aj ANID A2 MUST BE THE SAM4E SHAPE OR A 'LENGTH ERROR' WILL RESULT,
COMPARING TWO ARRAYS OF DIFFERENT RANK, FOR EXAMPLE A VECTOR A14D A
MATRIX, WILL RESULT IN A 'RANK ERROR',
130
I.
1 . . . II II ilt . . .. . . . . -
195 -o.10
THE SYMbOL w (ALT 9) IS USED FOR THE D'YAD'IC NOR FUNCTION,
IT TAKES ARGUMENTS OF ANY RANK WHICH CONSIST 0NLY OF I'S AND 0-S,
THIS FUNCTION RETURNS I WHERE NEITHER OF THE ARGUMENTS ARE 19
AND 0 OTHERWISE,
THE ORDER OF THE ARGUMENTS IS NOT IMPORTANT, BUT ENTERING AN ARGUMEHT
WHICH IS NOT 1 OR Q WILL PRODUCE A 'ZOMAI. ERROFr"
FOR E,,AMPLE : I => 0 IvO = 0 ovO = 1
TO COMP ARE A SCALAR TO EACH ELEMENT OF AN ARRAY,
ENTER EITHER Swo OR AWS, FOR EXAMPLE, IF V 2 -3 0
lw(XV) =) 0 0 0 (v=2) v v[1i3 0 1 1
AlvA2 WILL COMPARE TWO ARRAYS ELEMENT BY ELE4ENT, FOR E.'AMrPLE:
(v)-3,1 (v(2) z) 0 0 0
IF Ml 0 AND MI. =) I 1 THEN MlvM2 =)0 0
1 0 00 0 1
Al AND A2 MUST BE THE SAME SHAPE OR A 'LENGTH ERROR' WILL RESULT.
COMPARING TWO ARRAYS OF DIFFERENT RANK, FOR EXAMPLE A VECTOR AND A
MATPRZX WILL RESULT IN A 'RANK ERROR',
131
I
196 MEMBER OF MEAE'
THE SYMPOL E (UPSHIFT E) IS USED FOR THE DYADIC MEMBER OF FU-CTION,
THIS COHPARES NUMERIC OP. CHAACTER ARGUMENTS OF AHTf RANK,
IT RETURNS I -OR EACH ELEMENT OF THE LEFT ARGUMENT THAT IS FOUlY
A 'NWHERE I'- THE RIGHT ARGUMENT, AND 0 FOR EVERY ELEMENT
THAT IS N-OT,
wI rH TWO SCALAR AR.GUMENTSy E IS EQUIVALENT TO =
FOR EXAMPLE: 22 =) 1 214 = 0 E''I'' B,
TO D'ETERMINE IF A SCALAR IS A MEMB'ER OF All ARRAY, ENTER SEA.
2E(C 3 4) =) 1 'A 'A, C, : 1
ENTERING AES WILL PRODUCE THE SAME RESULT AS A=S.
AEA1A WILL TAKE EACH ELEMENT OF THE LEFT ARRAY AND DETERMINE IF
IT IS CONTAINED IN THE RIGHT A4RR'AY,
FOR EXAMFLE: 'WHICH 1'001234567S9' 0 0 0 0 0 0 1
IF Al = 1 22 14 AND A,? ) 1 23
38 5 2
THEN A1A2 : 1 0 0 AND A2*AI :' 1 1 0
001
THE RESULT OF A1EA2 HAS THE SAME SHAPE AS Al.
132
iV
201 REVERSE :EV2
THE SYMBOL * (ALT 5) IS USED FOR THE MONADIC REVERSE FUNCTZOU°
IT TAKES NUMERIC OR CHARACTER ARGUMENTS OF ANY RANK,
IT RETURNS ALL THE ELEMENTS OF THE ARGUMENT IN THE SAME SHAPE,
UT I A DIFFERENT ORDER, AS FOLLOWS,
USIG WITH SCALAR SIMFPLf RETURNS THE SCALA ,
USING W WITH A VECTOR RETURNS THE VECTOR IN REVERSE OR:DER,
FOR EXAMPLE: 02 3 5 =) 5 3 2
STOFP-- POTS
WHEN USED WITH A MATRIX, 0 TAKES THE COLUMNS AS UNITS AND REVERSES
THEM. THE FIRST COLUMN BECOMES THE LAST COLUMN, AND SO OH,
FOR EXAMPLE, IF M => 1 2 3 THEN 0 3 2 1
456 654
789 987
AFL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE COLUMNS,
SZNCE COLUM4NS ARE THE SECOND OF TWO DIMENSIONS OF A MATRIX,
THIS MEANS THAT THE SYMBOL * WORKS 'OVER- THE LAST DIMENSION,
TO REVERSE OVER THE FIRST DIMENSION (E,, ROWS OF A MATRIX), USE THE
SYMBCL a (ALT 7), IN PLACE OF $,
THIS IS IMPORTANT WHEN WORKING WITH HIGHER-DIMENSIOAL ARRA'vS,
FOR EXAMPLE , IN A THREE-DIMENSIONAL ARRA' OF PAGES, ROWS, 1N D
COLUMNS, $ WILL REVERSE OVER THE COLUMNS, a OVER THE PAGES,
TO REVERSE OVER ANY DIMENSION , YOU MAY SPECIFY THE DIMENSION IN
BRACKETS FOLLOWING THE * (OR THE *) SYMBOL,
FOR EXAMPLE , TO REVERSE OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
CALLED AAF ENTER 0*23AA OR *[2]AA, TO REVERSE OVER THE PAGES,
ENTER OAA OR *E1)AA. TO REVERSE OVER THE COLUMNS, ENTER $AA
OR OE3]AA.
133
fA
202 REVERSE F: EV
THE SYMBOL 8 (ALT 7) IS USEr FOR THE MONADIC REVERSE FUNhCTION,
IT TAKES HUMERIC OR CHARACTER ARGUMENTS OF ANY RANK,
IT RETURNS ALL THE ELEMENTS OF THE ARGUMENT IN THE SAME SHAPE,
BUT IN A DIFFERENT ORDER, AS FOLLOWS,
.SIfG e WITH A SCALAR BIMPLY RETURNS THE SCALAR:,
USING 9 WITH A VECTOR RETURNS THE VECTOR IN REVERSE ORDER,
FOR EXAMPLE: e2 3 5 5 3 *2
SGSTOF' P > OTS
WHEN USED WITH A MATRIX, e TAKES THE ROWS AS UNITS AND REVERSES
THEM, THE FIRST POW BECOMES THE LAST R:)W, AND SO OH,
FOR EXAMPLE, IF M =, 1 2 3 THEN SM 2> 7 8 9
45 6 456
789 123
APL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE ROWS,
SINCE ROWS ARE THE FIRST OF TWO DIMENSIONS OF A MATRIX',
THIS MEANS THAT THE SYMBOL e WORKS 'OVER' THE FIRST DIMENSION,
TO REVERSE OVER THE LAST DIMENSION (EG. COLUMNS OF A MATRIX),
USE THE SYMBOL $ (ALT 5), IN PLACE OF 8.
THIS IS IMPORTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS.
FOR EXAMPLE, IN A THREE-DIMENSIONAL ARRAY OF PAGES, ROWS, AND
COLUMNIS f $ WILL REVERSE OVER THE COLUMNS, 9 OVER THE PAGES,
TO REVERSE OVER ANY DIMENSION, YOU MAY SPECIFY THE DIMENSION IN
BRACKETS FOLLOWING THE e (OR THE $) SYMBOL,
FOR EXAMPLE, TO REVERSE OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
CALLED AA, ENTER OE23AA OR *C2JAA, TO REVERSE OVER THE PAGES,
ENTER OAA OR *ilIAA. TO REVERSE OVER THE COLUMNS, ENTER 0AA
OR e[3]AA.
134
2 3 RCTATE r. OT
* .. l* *$ 6t * .. . . .. . . 4 .... #. T .*. ...t•I e( $et$ f~ ~ e I .. .. 0 0ti,) # .. . . 4 ......... t
THE SYM'BOL $ (ALT 5) 13 ULED FOR THE DYADIC ROTATE FUNCTION,
THE RIGHT ARGUMENT CAN DE CHARACTER OR NUMERIC, OF ANY RCAK,
THE LEFT ARGUMENT MUST 'E Al INTEGER SCALAR OR ARRAY,
IT RETURNS ALL THE ELEMENTS OF THE RIGHT ARGUMEUT II- THE SAME SHAPE,
,UT Id A DIFFERENT ORDER, AS FOLLOWS,
IJSIG 0 WITH TWO SCALAR ARGUMENTS SIMFLY RETURNS THE RIGHT ARGUMEPT,
I VECTOR RIGHT ARGUMENT FEQUIRES A SCALAR LEFT ARGUMENT,
EACH ELEMENT CF THE RIGHT ARGUMENT IS MOVED TO THE LEFT BT THE NUMBEF
OF PLACES IrT:ICATE' IN THE LEFT ARGUMENT,
FOR E;,AMPLE: 2!2 3 5 5 2 3 30'ROTATE' =) ATEROT
WHEII USE' WITH A MATRIX, ) TAKES EITHER A SCALAR LEFT ARGUMENT OF 0
VECTOR WITH AS MANY ELEMENTS AS THERE ARE ROWS IN THE MATRIX.
£,)4 TAkES THE COLUMNS AS UHITS AND MOVES EACH COLUMN TO THE LEFT B,
THE NUMB'ER OF SPACES IODICATED Bf THE SCALAR.
FOR E':AMPLE: IF M =j 1 2 3 THEN 2M 3 1 2
45 645
79 97 3
V9M TAKES EACH ROW INDIVIDUALLY ANt MOVES THE ELEMENTS -0 THE LEFT Bf
THE NUMBER OF SPACES INDICATED BD THE CORF:ESFONDING ELEMENT OF THE
LEFT ARGUMENT. FOR EXAMPLE'
3 10 -- 3 i 2 THE FIRST ROW IS MOVED 2 SPACES LEFT
4 5 6 THE SECOND ROW IS ROTATED 3 SPACES
3 9 7 THE THIRD ROW IS ROTATED, ONCE
EACH ELEMENT IS IN THE SAME ROW BUT A DIFFERENT COLUMN, 50 APL
USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE COLUMNS.
SINCE COLUMNS ARE THE SECOND OF TWO DIMENSIONS OF A MATRIX,
THIS MEANS THAT THE SYMOL 0 WORKS 'OVER' THE LAST DIMENSION,
TO ROTATE OVER THE FIRST DIMENSION (EG. ROWS OF A MATRIX), USE THE
135
SYMBOL e (ALT 7), IN PLACE OF ,
THIS IS IMPORTANT WHEH WORKING WITH HIGHER-DIMENS10AL ARRAYS,
FOR Z"AAPLE, IN A THREE-DIMENSIONAL AFRAY OF PAGES, ROWS, AND "
COLUMNS, $ WILL ROTATE OVER THE COLU)q;S, e OVER THE PAGES,
TO ROTA-E OVER ANY HENSION, YOU MAY SPECIFY THE DIMENSION II
BFACKETS POLL'WINO1 THE 0 (OF: THE e) Si'MOL,
THE LEFT AOGUMEIHT MUST HAVE THE SAME SHAPE AS THE RIGHT ARGUMENT
OMITTI;I THE LIMENSION LEING ROTATED OVER, OF. IT MAY BE A -'CLAR.
FOE: E'(AMFLt, TO ROTATE OVER THE ROWS OF A THREE-DIMENSICNAL ARRAY'
CALLED AA WHERE pAA =) 2 3 4, ENTEF: EITHER S$9]AA4 OF: M42[JAA
WHERE -= Z 4. TO ROTATE OVER THE PAGES, ENTER SeAA OR MeAA
OF: SE1J]AA OR WM$jJAA WHERE FM =) 3 4. TO ROTATE OVER THE
COLUMNS, ENTER S.AA OF: HOAA OR _EC3]AA OR e[3]QA WHERE M = 2 3.
136
204 ROTATE OTt
THE Sif:SOL 9 (ALT 7) Is USED FOR THE DYADIC ROTATE FUNCTION,
THE RIGHT ARGUMENT CAN BE CHARACTER OR NUMERIC, OF AMY PANK,
THE LEFT ARGUMENT MUST BE AN INTEGER SCALAR OR ARRAY,
IT RETURNS ALL THE ELENENTS OF THE RIGHT ARGUMENT IN THE SAME SHAPE,
E;UT INI A EIFF'RENT ORDER, AS FOLLOWS,
USING a WITH TWO SCALAR ARGUMENTS SIAFLT RETURNS THE RIGHT ARGUmEdT,
A VECTOR RIGHT ARGUMENT REQUIRES A SCALAR LEFT ARGUMENT.
EACH ELEMENT OF THE RIGHT ARGUMEHT IS MOVED TO THE LEFT Pf THE qUMBERF
GF PLACES IHDICATED ZN1 THE LEFT ARGUMENT,
FOR EXAMPLE' 2e2 3 5 -> 5 2 3 3e'ROTATE' =, ATEROT
WHEN USED JJITH A MATRIX, e TAKES EITHER A SCALAR LEFT ARGUMENT OR A
VECTOR WTH AS MANY ELEMENTS AS THERE APE COLUMNS IN THE MATR1I1,
59A 7(ES TFE ROWS AS UNITS AND MOVES EACH ROW lUP Br' THE NUMBER
SPACES INDICATED BY THE SCALAR,
FOR E"AMPLE: IF M =) 1 2 3 THEN 28H , 7 8 9
456 123
789 456
V$M TAKES EACH COLUMN INDIVIDUALLY AND MOVES THE ELEMENTS UP BY
THE NUMBER OF SPACES INDICATED BY THE CORRESPONDING ELEMENT OF THE
LEFT ARGUMENT. FOR EXAMPLE:
2 3 leM _- 7 2.6 THE FIRST COLUMN IS MOVED 2 SPACES UP
1 5 9 THE SECOND COLUMN IS ROTATED 3 SPACES
4 8 3 THE THIRD COLUMN IS ROTATED ONCE
EACH ELEMENT IS IN THE SAME COLUMN BUT A DIFFERENT ROW, SO APL
USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE ROWS,
SINCE ROWS ARE THE FIRST OF TWO DIMENSIONS OF A MATRIX,
THIS MEANS THAT THE SYMBOL l WORKS 'OVER' THE FIRST DIMENSION,
TO ROTATE OVER THE LAST DIMENSION (E,G, COLUMNS OF A MATRIX), USE THE
137
Ih
II II . ... . . I
SrM'BOL i (ALT 5 IN PLACE OF 9,
THIS IS IMPORTANT WHEP WORkING WITH HIGHER-DINENSIONAL ARRAYS.
FOR EXAMPLE, IN A THEE-DMENSIONAL ARRAY OF PAGES, ROWS, AND,
COLUMNS, ) WfLL ROTATE OVER THE COLUMNS, * OVER THE PAGES.
TO ROTATE OVER AY DIMENSION, YOU MAY SPECIFY THE DINENSION I
BRACKETS FOLLOWING THE a (OR THE $) SYMBOL.
THE LEFT ARGUMENT MUST HAVE THE SAME SHAPE AS THE RIGHT ARGUMENT
OMITTIN4G THE DIMENSION BEING ROTATED OVER, OR IT MAY BE A SCALAR,
FOR EXAMPLE, TO ROTATE OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
CALLED AA WHERE pAA =1 2 3 4, ENTER EITHER 0t2I]AA OR M [2]AA
WHERE pM =% 2 4, TO ROTATE OVER THE PAGES, ENTER SSAA OR MqAA
OR S$[1]AA OR H$EIJAA WHERE fm =) 3 4. TO ROTATE OVER THE
COLUMNS9 ENTER S$AA OR M$AA OR Se[3)AA OR Met3)AA WHERE pM = 2 3.
138
u,
I + vA
205 TRANSPOSE-MONADIC T F AM
..*** .~*.... ........
THE SIMPOL I (ALT 6) IS USED FOR THE MONADIC TRNSFCSE FUNCTIOlN.
IT TAVES NUMERIC CP CHARACTER ARGUMENTS OF CoN" RANK ,
IT RETURNS ALL THE ELEMENTS OF THE ARGUM4EHT IN A DIFFERENT SHAFE
AND ORDER, AS FOLLOWS.
USIT'G - WITH A c.CALAFR OR VECTOR SIMPL" RETURNS THE ARGUMENT,
WHE:4- USED WITH A MATRI" e FERFOR4S MATRIX'. TRANSPOSITION:l
THE ROWS BECOWE COLUMNS 41-ID THE COLUMN1S BECOME ROWS.
FOR E:AMPLE, IF M I -- 3 THEN om = 1 4 7
456 258
7 89 369
WHEN USED WITH HIGHER-DIMESIO.AL APRAYS, TRANSPOSE REVERSES THE
ORDER 0F THE DIMENSIONS.
FOR E:.4APLE, I4 A THREE-DIMENSIOHAL ARRAY OF PAGES, ROWS, AND
'OLUMNS, THE PAGES WILL BECOME ROWS AND THE ROWS PAGES.
THAT IS, THE ELEMENT IN THE FIRST PAGE, SECOND POW, THIRD COLUMN
WILL BE TRANSPOSED TO THE THIRD PAGE, SECOND ROW, FIRST COLUMN,
IF =RRAEi;2;3;4) = 7 THEN (0APRAT)[4;3;2;1] =) 7
THE SHAPE OF THE RESULT WILL ALWAYS BE THE REVERSE OF THE SHAPE OF
THE ARGUMENT. IF pARR:A" => 3 2 7 THEN fARRAY =) 7 1 3
139
106 TR AII SFOSE-'I A I C TRAD
THE SfMBOL 4 (ALT 6) IS USED FOR THE DYADIC TRANSPOSE FUHCTION,
THE RIGHT ARGUMENT CAN BE CHARACTER OR. NUMERIC, OF ANY RANX,
THE LEFT ARGUMENT MUST BE A POSITIVE INTEGER SCALAR OR VECTOR,
IT RETURNS ALL THE ELEMENTS OF THE RIGHT ARGUMENT IN A DIFFERENT
SHAPE AND ORDER, AS FOLLOWS.
USING V WITH A SCALAR RIGHT ARGUMEINT RETJRNS A 'LEi.GTH ERROR' UNLESS
THE LEFT ARGUMENT IS AN EMPTY VECTOR, THEN IT RETURHS THE SC4LAR,
1NV RETURNS THE VECTOR V, ANY OTHER SCALAR LEFT ARGUMENT USED WITH
A VECTOR RIGHT ARGUM4ENT PRODUCES A I DOMAIN EFR;ROF. I, AH'i OTHER
RANK LEFT ARGUMENT RESULTS IN A 'LENGTH ERROR',
WITH A MATRIX, RIGHT ARGUMET 7 THE LEFT ARGUMENT MUST BE A VECTOR:
EITHER (1 2) OR (2 1), (2 P) M PRODUCES THE TRANSPOSE OF M;
THE COLUMiS (THE SECOND DIE.SION) IECOHE THE ROW (THE FIRST
DITMENSION), M12
WITH A RIGHT ARGUMENT OF RANK R, THE LEFT ARGUMENT MUST CONTAIN ALL
THE INTEGERS FROM 1 TO R, IN ANY ORDER,
TRANSPOSE WILL TAKE THE DIMENSIONS OF THE RIGHT ARGUMENT AND PUT THEM
T. THE ORDER SPErIFIED BY THE LEFT ARGUMENT,
FOR EXAMFLE, IF pA = 2 3 4 THEN (3 1 2)%A WILL PUT THE THIRD
,IME'4SIGN FIRST (COLUMNS BECOME PAGES), THE FIRST DIMENSION SECOND
tPAGES BECOME ROWS), AND THE SECOND DIMENSION THIRD (ROWS BECOME
COLUMNS), SO f(3 1 2)A =) 4 2 3.
IN OTHER WORDS, THE ELEMENT IN THE SECOND COLUMN, THIRD ROW , FIRST
PAGE WILL BE TRANSPOSED TO THE SECOND PAGE, THIRD COLUMN, FIRST
ROW, AND SO ON, IF A[I 3 23 :) 8 THEN ((3 1 2)4A)12 133 ) 8.
140
211 TAKE TAKE
THE SYMBOL -k (UPSHIFT Y) IS USED' FOR THE DfADIC TAKE FUNCTIOP.
THE LEFT ARGUMENT MUST BE AN INTEGER SCALAR OR VECTOR.
THE RIGHT ARGUMENT CAN BE CHARACTER OR i;UMERIC, OF ANY RFAK,
TAKE RETURNS SELECTED ELEMEUTS OF THE RIGHT ARGUMENT AS FOLLOWS:
WHEN THE RIGHT A;RGU.OENT IS A SCALP-;, THE LEFT ARGOMENT CAN BE A SCALAR
OP A VECTOr OF AP'' LENGTH,
THE RESULT OF LtR HAS A SHAPE EXACTL ' ERtUAL TO L. R WILL BE THE FIRST
ELEME'T IF L IS POSITIVE, QND THE LAST ELEMENT IF L IS NEGATIVE, THE
OTHER ELEMENTS WILL BE 0 IF R Is NUMERIC, BLAU, IF R IS CHARACTER.
FOR EXAMPLE: 14k4 =l 4 pl+4 = I 1 24k'A = A
A . 44k2 : 0 0 0 2 f(3 4)l : 3 4
IF THS RIGHT ARGUMENT IS a VECTOR, THE LEFT ARGUMENT MUST BE A SCALAR
OR A 'RANK ERROR' WILL RESULT,
StV WILL RETURN THE FIRST S ELEMENTS OF J, IF S IS POSITIVE, OR THE
LAST S ELEMENTS OF V, IF S IS NEGATIVE.
IF S EXCEEDS THE LENGTH OF V, THE RESULT WILL BE PADDED WITH 01S, OR
SLAI KS, cu THE RIGHT IF S IS POSITIVE, ON THE LEFT IF S IS NEGATIVE,
FOR" EXAMPLE: 34 k10 =) 1 2 3 -3+'ALPHADET' =) BET
5t,ABC, =) ABC 5t4'Asc' = 5 -4+ 2 3 =) 0 0 2 3
WHEN THE FIGHT ARGUMENT IS A MATRIX OR HIGHER LEVEL ARRAY, THE LEFT
ARGUMENT MUST BE A VECTOR WITH AS MANY ELEMENTS AS THERE ARE
DIIMENSIONS IN1 THE RIGHT ARGUMENT, OR A 'LENGTH ERROR' RESULTS,
FOR EXAMPLE: IF M =)9 7 "1 2tM ) 6 5 2 4+M =) 9 9 7 0
65 4 65 40
THE FIRST ELEMENT OF THE VECTOR DETERMINES WHICH ROWS ARE TAKEN,
AND THE SECOND ELEMENT DETERMINES WHICH COLUMNS ARE TAKEN,
THE RESULT WILL BE PADDED WITH 0'S OR BLANKS AS ABOVE,
141
Eb
FOR HIGHER LEVEL ARRAYS, EACH ELEMEtT OF THE LEFT ARGUMENT WILL
TAKE ELEMENTS FROM THE COF:RESPONDING LIMENSIOH,.
FOR EXAMP:LE, IF p = 6 5 4; (2 -3 1)t WILL RETURN THE FI:ST
COLUMN OF THE LAST THREE ROWS OF THE FIRST TWO PAGES,
THE RESULT OF TAKE WILL ALWAYS HAVE A SHAPE EXACTLY EOUAL TO THE
ABSOLUTE VALUE OF THE LEFT ARGUMENT,
IF THERE IS , ZERO (0) ANYWH'ERE I THE LEFT ARGUMENT, THE ANSWER WILL
BE AN EMPT'Y ARRAY WITH THE APPROPRIATE SHAPE.
FOR EAMPLE 2 -3 ltA ="2 3 1 ?7 0 7tA => 7 0 7
142
AL - -
Fii
212 DROP 1)OF P
THE SYBOL 4 (UPSHIFT U) IS USED FOR THE DYADIC DROP FUNCTION,
THE LEFT ARGUMENT MUST BE AN INTEGER SCALAR OR VECTOR,
THE RIGHT ARGUMENT CAN BE CHARACTER OR NUHERIC, OF AN; RAHK.
DROP RETURNS SELECTED ELEMENTS OF THE RIGHT ARGUMENT AS FOLLOWS.
WHEN T E FIGHT ARGUMENT IS A SCALAR? THE LEFT APGUHEl!T CAN. BE A SCALAR
OP A VECTOR OF ANH LENGTH,
IF ALL ELEMENTS OF THE LEFT ARGUMET 1GUAL 0, THE :ESULT OF L4S WILL
E.E AN4 ARRAY CONTAI:.ING THE RIGHT APGUMENT; OTHERWISE IT WILL BE AN
EM4PT' AFRAf, THIS ARRAY HAS AS MANY DIMENSIONS AS THE LEFT ARGUMENT
HAS ELEMENTS AND EACH DIMENSION IS OF LENGTH 1,
FOR S,W'PLE; 14 = (EMPTY) Pl14 = 1 04'A' => A
2 4 642 => (E!ArT'yj P(2 4 6),2 =' I 1 1 0 0 0,3 = 3
IF THE RIGHT ARGUME%.T IS A VECTOR, THE LEFT ARGUMENT MUST BE A SCALAR
OR A 'RA141( ERROR' WILL RESULT,
S+V 'ILL RETURN V OMITTIOG THE FIRST S ELEMENTS, IF S IS POSITIVE,
OR THE LAST S ELEMENTS, IF S IS NEGATIVE,
IF S ECEEDS THE LE,.NGTH OF V, THE RESULT WILL BE AN EMPTY VECTOR,
FOR E'AMPLE: 6410 =) 7 8 9 10 -34'ALPHABET' =) ALPHA
j+'ABC ' => (EMPTY) p54'AsC' =) 0 041 3 =) 1 3
WHEN THE RIGHT ARGUMENT IS A MATRIX OR HIGHER LEVEL ARRAi, THE LEFT
ARGUMENT MUST BE A VECTOR WITH AS MANY ELEMENTS AS THERE ARE
DIMENSIONS IN THE RIGHT ARGUMEHT, OR A 'LENGTH ERROR' RESULTS,
FOR EXAMPLE: IF M =) 9 8 7 1 "4M = 6 5 0 24m = 7
654 4
THE FIRST ELEMENT OF THE VECTOR DETERMINES WHICH ROWS ARE DROPPED, $AND THE SECOND ELEMENT DETERMINES WHICH COLUMNS ARE DROPPED,
FOR HIGHER LEVEL ARRAYS, EACH ELEMENT OF THE LEFT ARGUMENT WILL
143
DROP ELEMENTS FROM THE CORRESPONDING DIMEHSION,
FOR EXAMPLE, IF ?A =%.6 S! 4; (2 -3 1)0A WILL RETURN THE LAST
THREE COLUM14S OF THE FIRST TWO ROWS OF THE LAST FOUR AGES,
THE RESULT OF DROP WILL ALWAYS HAVE A SHAFE EXACTLY EQUAL TO THE
SHAPE OF THE R.GHT ARGUMENT MINUS THE ABSOLUTE VALUE OF THE
LEFT ARGUMENT, EX. CEPT AS FOLLOWS:
IF ANY ELEMENT OF THE LEFT AR3UMENT EXCEED'S THE LE4GTH OF THE
C.)RRESPONr'DIHO D.I'E1.SION IN THE RIGHT ARGUMENT, THE RESULT WILL
BE All EMFPT'" AR.RAY OF THE APPROFRIATE SHAPE,
!N THE ABOVE EXAMPLE, f(2 -3 1)4A = 4 2 3
P(3 4 5) = 3 1 0 3 4 5iA =) (EMPTY)
144
- --
213 COMPRESS cOM2
THE SfMBOL / IS USED' FOR THE DYADIC COMPRESS FUNCTION.
THE RIGHT ARGUMENT CAN BE CHARACTER OR NUMERIC, OF Ad' FAidK,
THE LEFT ARGUMENT MUST BE 1,0, OR A VECTOR OF J'S AN' O)S.
COMPRESS RETURNS SELECTED. ELEMENTS OF THE FIGHT ARGUMENT, AS FOLLOWS:
1,1 4 WILL RETURNH THE FIGHT ARGUMENT, WHILE 0/A RETURNS AN EMPTY ARRAv
'V1/v- WILL RETURN THE ELEMENTS OF V2 THAT CORRESPOND TO I'S IN VI.
rOF. EXAMPLE: 1 0 1/1 2 3 = 1 3 1 1 0 1/'HALT' =) HAT
TWO VECTOR ARGUMENTS MUST HAVE THE SAME HUM ER OF ELEMENTS OR A
'LEI-IGTH ERROR' WILL RESULT,
V,1ri TAKES THE COLUMNS AS UNITS AN, RETURNS THE COLUMNS 111 M WHICH
CORRE--PON'! TO THE I S IN., V, FOR E:,'AMLE:
IF M 1 2 3 THEP 1 = /M = 1 3
456 46
7 - ' 7 9AFL USERS REFER TO THIS AS WORKING 'ACROSS, OR IOVERI THE COLUMNS.
SINCE COLUMNS ARE THE SECOND OF TWO DIMENSIONS OF A MATRI',
THIS MEANS THAT THE SYMBOL / WORKS 'OVER- THE LAST DIMENSION.
TO COMPRESS OVER THE FIRST DIMENSION (E,G, ROWS OF A MATRIX), USE THE
SYMBOL L (ALT /)f IN PLACE OF /,
THIS IS IMPCRTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMPLE, I.N A THREE-DIMENSIONAL ARRAY' OF PAGES, ROWS, AND
COLUMNS, / WILL COMPRESS OVER THE COLUMNS, OVER THE PAGES,
TO COMPRESS OVER ANY DIMENSION, YOU MAY SPECIFY THE DIMENSION IN
BRACKETS FOLLOWING THE / (OR THE )0) SYMBOL,
THE LEFT ARGUMENT MUST BE A SCALAR, OR A VECTOR WITH THE SAME
N.lUMBER OF ELEMENTS AS THE DIMENSION BEING COMPRESSED OVER,
FOR EXAMPLE, TO COMPRESS OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
145
,d
CALLED AA WHERE pA = 2 3 4, ENTER S/2)AA OR V/t2]AA OR S#E22.A
OF VrE2JAA WHERE pV =1 3, TO COMPRESS OVER THE PAGES, ENTER
SJAA OR Vj€A OR S/C1AA OR V/tiAA WHERE pV =) 2. TO COAPRES
OVER THE COLUMNS, ENTER S/AA OR V/AA OR S/[3AA OR V,43) AA
WHERE pV => 4,
146
214 COMPRESS COM
THE SYMBOL f (ALT /) IS USED' FOR. THE DYArDIc COMPRESS FUNCTION,
THE RIGHT AR5UMENT CA' BE CHARACTER OR NUMERIC, OF ANY RANIK
THE LEFT ARGUMENT MUST ! E OR A VECTOR OF 115 AND' '- .
COMPRESS RETURNS SELECTED ELEMENTS OF THE RIGHT ARGUMENT, AS FOLLOWS;
ItA WIL'_ RETURN THE RIGHT ARGUMENT, WHILE O A RETURNS Aft EMFT'i AF-Ar,
VMV2 WILL RETURN THE ELEMENTS OF V2 THAT CORRESPOND TO I'S I- Vi.
FOR EXAMPLE: 1 0 11 2 3 =, 1 3 1 1 0 1 ' H LT' = HAT
TWO VECTOR ARGUMENTS MUST HAVE THE SAME HUi-iBER OF ELEMENTS OR A
'LENGTH ERROR' WILL RESULT,
V M TAKES THE ROWS AS UNITS AND RETURHS THE ROWS I0 M WHICH
CORRESPOND' TO THE I'S IN V. FOR EXAMPLE:
IF M 1, 1 2 3 THEM 1 0 I7 M 12 3
456 7897 2 9
APL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER THE ROWS,
SINCE ROWS ARE THE FIRST OF TWO DIMENSIONS OF A MATRIX,
THIS MEANS THAT THE SYMBOL / WORKS 'OVER' THE FIRST DIMENSION.
TO COMPRESS OVER THE LAST DIMENSION (EG. COLUMNS OF A MATRIX),
USE THE SYMf'OL / IN PLACE OF .,
THIS IS IMPORTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMPLE, IN A THREE-DIMENSIONAL ARRAY OF PAGES, ROWS, ANI'D
COLUMNSt / WILL COMPRESS OVER THE COLUMNS, OVER THE PAGES,
TO COMPRESS OVER ANY DIMENSION, YOU MAY SPECIFY THE DIMENSION IN
BRACKETS FOLLOWING THE j (OR THE /) SYMBOL,
THE LEFT ARGUMENT MUST BE A SCALAR, OR A VECTOR WITH THE SAME
NUMBER OF ELEMENTS AS THE DIMENSION BEING COMPRESSED OVER,
FOR EXAMPLE, TO COMPRESS OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
147
I i i | ~ i . . . .a
CALLED AA WHERE pAA 2 3 4, ELITER S/[2]AA OR VI[2]A OR S/[2J A
OR V/rrJ.Ag W;4ERE fV > 3, TO COMPRESS OVER THE PAGES, ENTEF:
Sj OF: Y4AA OR S/[IJAA OR V/CIJAA WHERE PV =) 2, TO COMFRESS
OVER THE COLUMNS, ENTER S/AA OR VIAA OR 59[3JAA OR V/[33 A
WHERE pV > ,
148
215 EXPAN , EXF2
THE SYMBOL \ (UPSHIFT /) IS USED' FOR THE DfAtIC EXPAND FUNCTION,
THE RIGHT ARGUMENT CAN BE CHARACTER OR NUMERIC, OF ANY FANK,
THE LEFT ARGUMEiT MUST BE A VECTOR OF I'S AND' o'S,
IS NUMERIC, OR BLANKS IF IT IS CHARACTER, AS FOLLOWS:
rZXPAtflZ RETURNS THE RIGHT AFGUNEOT, ADDING 0 S IF THE RIGHT A5.3UMENT
IS "-UMEFIC, OR BLAHKS IF IT IS CHARACTER, AS FOLLOWS:
V\S WILL RETUSN A VECTOR CONSISTING OF THE SCALAF: FEFEATED AS MAHt
TIMES AS THERE ARE 1 'S IN V,
OR EXAMPLE: 1 0 1\3 =) 3 3
IF THERE ARE :.l 1. IN V, V\S RETURNS AN EMPTY VECTOR,
'jj'V2! WILL RETUFRN THE ELEMENTS OF V2, WITH 0'S OR PLAoKS IIZERTEI'
TO CORRESPOND TO THE )'S IN Vi. FOR E'XAAPLE.
1 1 0 1\1 Z 3 => 1 2 0 3 1 0 1 0 J\'AP L' =) A P L
THE LEFT ARGUMENT MUST CONTAIN AS MANY 1' S AS THERE ARE ELEMENTS
IN"! THE RIGHT ARGUMEUT OR A 'LENGTH ERROR' WILL RESULT,
Vd\M TAKES THE COLUMNS AS UNITS AND RETURNS THE A MATRIX WITH COLUMI-15
OF 0'S OR BLANKS INSERTED TO CORRESPOND TO THE 1'S I V,
IF M Z> 1 2 3 THEN 1 0 1 0 I\M =) 1 0 2 0 3
456 40506
789 70809
APL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE COLUMNS,
SINCE COLUM4NS ARE THE SECOND OF TWO DIMENSIONS OF A MATRIX,
THIS MEANS THAT THE SYMBOL \ WORXS 'OVER' THE LAST DIMENSION,
TO EXPAND OVER THE FIRST DIMENSION (EG, ROWS OF A MATRIX), USE THE
SYMBOL (ALT ,), IN PLACE OF \,
THIS IS IMPORTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMP t IN! A THREE-DIMENSIOHAL ARRAY OF PAGES, ROWS, AND
149
CCLU f43I- ', \ WILL E;,P-;.D OVER THE COLUMNS, , OVER THE PAGES.
T: C'nr DU E. ANY DIENSIOH, "YOU MAY SPECIFY THE DIMENSION IN
SR4C (ETS FOLLOWIlO rilE \ (OR. THE \) 'f7MEOL,
FOR E:FA'LEE TO ERPAND OVER THE ROWS OF A THREE-DIMENSIONAL ARRAt
CALLED AA WHERE fr =} 2 3 4, ENTER V\E2]AA OR V*t23A
IlHEF*E +V 3, TO EF'ANE, OVER THE PAGES, ENTER VAA OR V\CI]AA
WHERE +/V 2. TO E..PANlD OVER THE COLUMNS, EN-TER V\AA OR
fl[3]AA WHERE +/V :? 4
150
momm-
216 EPAND r. F
THE SYMBOL A (LT ) IS USED FOR THE DYADIC EXPAND FUNCTID,
THE RIGHT ARGUMENT CAN' BE CHARACTER OR NUMERIC, OF AUT F.A.'K.
THE LEFT AF:GUMEPT MUST BE A VECTOR OF J'S 4NI, 0's,
EXPAND RETURNS THE RIGHT ARGUMENT, ADDING O'S IF THE RISH' AUJMENT
IS -IUMER:C, OR BLA DKS IF IT I CHARACTER, AS FOLLOWS:
V.S WILL RETURN A VECTOR CUSISTIiiG OF THE : CALAF. REFEATED AS MSNH
TIMES AS THERE ARE 1'S I;l V.
FOR E:fAMPLE# 1 ) 1 ,3 =) 3
IF THERE ARE NO J'S Ill V, V S RETURNS All EMFTY VECTOR,
V j1V2 WILL RETURN THE ELEMENTS OF v2, WITH 0'3 OF: BLANKS IHSERTED
TO CORRESPOND TO THE 0,S IN Vi, FOR EXAMFL E:
1 1 0 1 i 2 3 1 2 0 3 1 0 i 0 I1 'A P L' = A P L
THE LEFT ARGUMENT MUST CONTAIN AS MAN't JS AS THERE AFE ELEMENTS
IM THE RIGHT ARGUME.T OR. A 'LE:4GTH ERROR' WILL RESULT.
'JM TAKES THE ROWS AS UNITS AND RETURNS THE MATRIX WITH ROWS
OF Q'S OR BLA14KS INSERTED TO CORRESPOND TO THE 1'S IN V.
IF M => 1 2 3 THEN 1 0 1 H => 1 2 3
456 0 0 0456
AFL USERS REFER TO THIS AS WORKING 'ACROSS' OR 'OVER' THE ROWS.
SINCE ROWS ARE THE FIRST OF TWO DIMENSIONS OF A MATR:,
THIS MEANS THAT THE SYMBOL WORKS 'OVER' THE FIRST DIMENSION.
TO EXPAND OVER THE LAST DIMENSION (E,G. COLUMNS OF A MATRIX), USE
THE SYMBOL \ (UPSHIFT /), IN PLACE OF ,
THIS I IMPORTANT WHEN WORKING WITH HIGHER-DIMENSIONAL ARRAYS,
FOR EXAMPLE, IN A THREE-DIMENSIONAL ARRAY OF PAGES, ROWS, AND
COLUMNSI \ WILL EXPAND OVER THE COLUMNS, OVER THE PAGES,
151
TO EX FAND OVER ANY DIMENSION, TOU MA' SPECIFY THE DIMESION IN
BRACKETS FOLLOWING THE (OR THE \) SYMBOL,
THE LEFT APGUIENT MUST PE A VECTOR WITH THE SAME NUMBER OF 1'5 AS
THERE ARE ELEMENTS IN THE DIMENSION BEING EXPANDED OVER,
FOR EXAMPLE, TO EPAND OVER THE ROWS OF A THREE-DIMENSIONAL ARRAY
CALLED AA WHERE fAr =) Z 3 4, ENTER V[2JAA OF V\E2JAA
WHERE +/V =} 3, TO EXPAND OVER THE PAGES, ENTER V%,AA OR V\[1]AZ
WHERE +/V => 2, TO EXPAND OVER THE COLUMNS, EHTER V\AA OR
YL3A4A WHERE +/. = 4
152
119 LAAINATE LAMI
e*,,*..~~~~~~~~ .*~ * * * b* * * *~ * . .***.*.**.**.**.**.
THE 'SMBOL FOLLOWED B AN1 NUMBER IN BRACKETS IS USED, FOR THE
DYADIC LAMINATE FUNCTION, AN EXTENSION OF THE CATENATE FUNCTION,
THIS FUNCTI'.1 WILL COMBINE TWO CHARACTER OR NUMERIC ARGUMENTS
OF ANY RANK (E-'CEPT TWO SCALARS) INTO A SINGLE ARRAY,
VECTORS CAN BE E"TENDEE BY LAMINATING SyElYV OR V,ES OR VE1)V.
THE NUMBER IN THE BRACVETS MUST BE 1 BECAUSE VECTOR HAVE ONLY
ONE r'IMENION, 'HIS WORKS EXACTLy LIKE CATENATE,
140W FOR SOMETHIIN REaLLY' TRICK Y :
TO MAKE A TWO-ROW MATRIX" OUT OF TWO VECTORS OF THE SAME LENGTH,
ENTER ' 1yE.5"l2. ANY IN1-DEX BETWEEN 0 AND I WILL DO,
THIS CREATES A NEW DIMENSIN PRECEDING THE FIRST DIME.S0ON OF
THS ARGUMZEi'ITS. THE OTHE. DIMENSION STAYS THE SAME LENGTH.
TO MAXE A TWO-COLUMIN MATNI -f, ENTER VlE1.5]v2 (AN ., INDEX FRO. I TO 2).
N-OW THE HEW 5I1,E,.SION COMES AFTER THE FIRST, WHICH IS THE SAME AS
THE LENGTH OF THE ARGJMENTS,
Li.MlAM TIMG A SCALAR TO A MATRIX WILL RESULT I1 A MATRIX" WITH ONE
MORE POW (IF THE INDEX NUMBER IN BRACKETS IS 1) OR ,3NE iORE
COLUMN (IF THE INDEX NUMBER IS 2) THAN THE ORIGINAL MATRIX,
ALL ENTRIES ZN THIS ROW OF COLUMN WILL HAVE THE VALUE OF THE SCALAR,
IF M = 1 2 THEN 5,C1 "M = 5 5 AND ME2)5 -) 1 2 5
34 12 345
3 4
LAMINATING TWO MATRIXES WILL RESULT IN A MATRIX CONTAINING THE TWO
ORIGINAL MATRIXES SIDE BY SIDE (INDEX 2) OR VERTICALLY (INDEX 1).
FOR EXAMPLE: IF Ml 1 2 AND m2w =- 56
34 78
THEN M1,[2]M2 1 2 5 6 AND m2,[1]91 : 1 2
153
.... .. . .. .. . I II I I - ,i , , .. . . - j
3 4768 3 4
5 6
TO STACK THE MATRIXES IBY CREAT114G A THIRDi DIMENSION, ENTER,
AI,[. SIM1 (~I 11DEX BET WEE H 0 ANHD I). 'IOU CAN ALSO CREATE
A THiFr. DIMENSION B'f ml,Ei,5Jm2 OR M41,E2,5)M2. TRY IT,
VARIATIONIS 0!f THIS THEME ARE ALMOST ENDLESS--EXPERIMENT;
IN EVERY CASE, THE HJMBER, IN THE B.RACKETS REFERS TO THE DIMENSION
WHERE THE *SEAM! IS_-THE DIMENSION THAT INCREASES I1N LENGTH.
IF THIS IS A NEW DI!,ENISIOil IT WILL ALWAYS BE LEHGTH 2- IN. THE RESULT.
THE OTHEP DrMENSIOUS MUST P'E THE SAME LENGTH IN. BOTH ARGUMENTS
(UNLESS 0ONE IS A SCALAR) OR A ILENGTH ERROR- WILL RESULT.
IS4
231 MATRI; XINVERSE 4ATI
THE SYMBOL 2 (ALT X) IS USED FOR THE MONDIC MATRIX INVERSE FUNCTION,
IT TAKES A NUMERIC SCALAR, VECTORY OR MATRIX ARGUMEIT, AND RETURNS
THE LEFT INVERSE, IN TERMS OF HAT-:IX ALGEBRA, THIS IS THE MATRI.
WHICH PRODUCES THE IDENTITY WHEN LEFT-MULTIPLIED WITH THE ORIGINAL
WHEN USED WITH SCALARS, 2 IS EOUIVALEN4T TO ,
SWILL TREAT VECTORS AS JXL MATRIXES, @V WILL RETUPlI THE VECTOR V-
SO THAT VI +,X V =
S tUARE MATF IXES WILL SE INVERTED NORMALL'io
POP E'APLE: i =) 12 M - 2 1
3 4 1.5 -0,5
SOME PON-SQUARE MATRI.ES MAY 0LSO BE INVERTED,
FOP-E;P.E:. :IF M2 =-1 4 THEN 22 = 0.9444 -0.1111 0.7222
2 5 0.4444 0.1111 -0.2222
36
IF M IS HOT IHVERTIPLE, A 'DOMAIN ERROR- WILL RESULT,
155
232 MATRIX DIVIDE MATI,
THE SYM BOL a (ALT x) IS USED FOR THE DYADIC MATRIX DIVIDE FUHCTION.
IT TAKES ARITHMETIC ARGUMENTS WITH RAHK ( 3, THE TWO ARGUMEHTS
MUST HAVE THE SAME NUMIER OF ROWS,
IH TERMS OF MATRIX ALGEBRRA, IT LEFT MULTIPLIES THE LEFT ARGUIMENIT BY
THE LEFT INVERSE OF THE RISHT ARGUMENT.
5j PRODUCES THE SOLUTION TO THE SET OF LIHEAR EQUATIONS AX=B.
WHEN USED WITH TWO SCALAFS, 6 IS EQUIVALENT TO -,
WHEN USED WITH VECTOPS., a OPERATES AS IF THE VECTORS ARE 1XC OR RXi
MATRIXES, WHICHEVER IS APPPOPRIATE,
1 56
241 OUTERP R OD UCT CUTE
~* .. * .t * * * . * ~ , * q 0. #$tot,. ... to... to*. # . .. . . o
THE SYMBOLS o* (UPSHIFT J FOLLOWED" BY A PERIOD) ARE FLACE'D PRECEDItG
AN'f DYADIC FU.CTIOHI SYMBOL TO PRODUCE THE OUTER PRODUCT FUNCTION.
THE ARGUMENTS MAY BE NUMERIC OR: CHARACTER, IF THE D*TAl.IC TMIOL
ACCEPTS CHARACTER ARGUMENTS, THEY MAY BE OF ANtY RANK AND 'O 0OT
HAVE TO 4GREE I SHAPE,
THE OUTER PRODUCT RESULTS III THE DYADIC S';IA MEL OPERPATi ON EACH
ELEMENT OF THE LEFT ARGUMENT COMBINED WITH EVERY ELEMENT OF
THE RIGHT ARGQMEiIT*
FOR EX FLEl 1 2 o .x 3 4 5 = 3 4 5
6 8 10
'STOP, o,= 'POST' > 0 0 1 0
0 000 1 O00
1 0 0 0
OUTER PRODUCT (ALSO CALLED 'JOT DOT BECAUSE OF THE SYMBOLS)
CAM BE E..XTENDED TO ARRAYS OF ANY DIMENSION OF. SIZE,
THE SHAPE OF THE RESULT WILL ALWAfS BE EOUAL TO THE SHAPE OF THE
LEFT ARGUMENT CATENATED TO THE SHAPE OF THE RIGHT ARGUMENT,
FOR EXAMPLE: IF fAl => 3 4 AND PA2 = 6 5
THEM pAlo,+A2 = 3 4 6 5
157
6.. €
III I I I I ': ' " " "" II II
242 I1ER PRODUCT N E
THE SYMBOL * (PERIOD OR 'DOTI) M1A BE PLACED' BETWEEN ANY TWO ti ADIC
FUNCTION SYMBOLS TO CREATE THE INNER PRODUCT FUNCTION,
THE ARGU ENTS MA' BE NUMERIC OR CHARACTER, IF APPROFF:IATE, OF AN-i
RAK , THE LENGTH OF THE LAST DIME3ISON OF THE LEFT ARGUMENT
MUST BE THE SAME AS THE LENGTH OF THE FIF:ST DIMENSION OF THE
RIGHT ARGUMENT,
:HHEP PRODUCT IS MOST CCMMOLY USED WITH + AND x TO FORM THE
CONVENTIONAL DOT PRODUCT OR* MATRIX PRODUCT OF MATR IX ALGEBRA,
FOR EX'AMPLE: IF Vj =, I ) 3 A"D V2 =, 4 5 6
THEN "1 +,X 2 = 32
IiPNER PRODUCT MAY BE E;.T ENDED TO HIGHER LEVEL ARRA;FS AS WELL AS
iATRIXES, THE SHAPE OF THE RESULT WILL BE THE SAME AS THE SHAPE
OF THE LEFT ARGUMENT CATENATED TO THE SHAPE OF THE RIGHT ARGUMENT,
OMITTING THE MATCHINS DIMENSIONS (LAST ON THE LEFT, FIRST ON
THE RIGHT.
FOR EXAMPLE: IF Aj => 3 6 4 ANID fA2 => 4 5
THEN f Al +,x A2 =) 3 6 5
158
301 INLDE:-_ OF I I 0
1 ... ,...............
THE SY MOL UPSHIFT I) IS USED' FOF THE Dfs*QIC INDEX OF FUNCTION.
THE LEFT ARGUMENT MUST BE A VECTOR AND THE RIGHT ARGUMENT CAN BE
A A.AI-IK . INIDEX OF CA-1 BE USED. WITH CHARACTEF OR NUMERIC DATA,
IT RETURNS THE POSITIOM 11 THE LEFT aRGUmEt-iT OF THE ELEMENTS OF THE
RtGHT ARGUMENT, THE SHAPE OF THE RESULT IS THE SAME AS THE
SHAPE OF THE RIGHT ARGUME>T,
IF THE RIGHT ARGUMENT DOES NOT OCCUR III THE LEFT ARGUMENT, THE F.EBULT
WILL BE ONE PLUS THE LENGTH OF THE LEFT ARGUMENT.
FOP. EXAMFLE: 4 3 2 113 B.2 SECAUSE 3 IS III THE SECON1D FOSITION
'HELLOI R 6 CAUSE F IS POT FOUND
V A CHECKS EACH ELEMENT OF THE RIGHT ARGUMENT INDIVIDUALLY,
FOR EXAPLE, 3 5 7 911 2 3 4 5 z) 5 5 1 5 2
IF T'OU ASSIGN ALFHADETi- ABCrEFGHIJKLMNOPRISTuVWX :--'
THEW ALPHABETi'APL = 1 1 12
159
son
304 ENCODE ECO
'HE SfMBOL T (UPSHIFT V IS USErD FOR THE D'ADIC ENCODE FUHCTION.
IT TAkES HUMERIC ARGUMEN-TS OF AHY FAHK AIMI"D RETUF.HS THE REPRESEHTATION
OF THE RIGHT ARSUMiEAT IH THE HUMBER SYSTEM SPECIFIED BY THE LEFT
.FRGUME1T.
THE EiTRI ES I",! THE LEFT AgGUMEHT DEFINE THE NUMFER OF VALUE5 THAT
CAP E.E FLACED I I THAT POSITION,
iOD" S. AMPLE, I.0 THE BI.AI'f SYSTEM, EACH POSITIOH CAII TAKE ONE OF TWO
VALUES, 0 OF. 1. THEREFOFE, TO TRAHSLATE 133 INTO EINARY1 EOTEF::
'2 2 2 -2 2- 2 ZT3 ' ='- > 1 0 0 A 0 1 0
THE RESULT WILL ALWAYS BE THE SAME SHAPE AS THE LEFT ARGUMENT, SO BE
SURE THAT THE LE'T 4FGUHENT IS LAR.CiE ENOUGH TO BE CORRECT,
FOR EAAFLE: 2 2 2T133 :> 1 0 1
E14COE CAN. ALSO PE USED TO 7R NSLTE TIMES, GIVEH TIME I SECONEIS,
ENTER. (Z000 365 24 60 bQ) -r TIME TO RECEIVE A VECTOR OF YEAFS
0 TO 1999), DAYS (Q TO 364)y HOURS (0 TO 23), IN.1.UTES (0 TO 60),
AN SECONDS (- TO 60).FO: EXAMPLE: 2000 365 24 60 60T456701 => 0 5 6 51 41
160
305 DECODE VE C0
THE SrMPOL , (UFSHIFT 14) IS USED FOF THE DY'ADIC DECO'E FUNCTION,
IT TAXKES NUMERIC ARGUMENTS OF ANY R ;NK 41-D RETURNS THE TECIAL VALUE
OF THE RIGHT ARGUMENT WHICH IS WFITTEII IN THE NUMER -STEM
SFECIFIE, SY THE LEFT ARGUMENT.
THE ENT:IES I' THE LEFT ARGUME.IT DEFINE THE VALUES OF EACH POSITION
IN THE )Li H(EP SYSTEM,
FOR EXAM LE, I THE BINAR SYSTEM, EACH FOSITIOl CAN TAKE ONE OF TWO
vALUES, 0 OF: 1. THEREFORE, TO TRAHSLATE 10000101 FFOM E INARY'.
2 L i 0 0 0 0 1 0 1 => 133
U;)LESS OE ARGUMEIT IS A SCALA : THE ARGUMENTS MUST BE THE SAME SHAFE
O.R A 'LENGTH ERRORI WILL BE PRODUCED,
DECODE C41. ALSO BE USED' TO TRANSLATE TIAES, GIVEN TIME I1I YEARS,
%0 TO i99," t 'S () TO 364), HOURS (0 TO 23), MINUTES (0 TO 60),
AH£, SECOi,:,S (') TO 60), ENTER 2000 365 24 60 60 • TIME TO
Ptlet THE TIME IN1 SECONDS.
POR S!AMPLE: 2000 365 24 60 60 £ 0 5 6 51 41 => 456701
II
306 EXECUTE E EC
THE S 'HIOL ± (ALT E) IS USED FOR THE MOHAZ IC EXECUTE FUNCTION.L
IT TAKES A VECTOR CHARACTER ARGUMEHT ONLY, AND TREATS IT AS
Pl APL E.PRESSION.
FOR EXAMPLE: ii + 2+ = 3
IF V = 'HELF'I tV WILL RUH THE HELP FUNCTIOI
HOWEVER, W ILL NOT EXECUTE EXPRESSIONS BEGINNING WITH OR V.
162
307 FORMAT-D'fADI:D F
t ttil .t. ..*t**** i****t t l l t ....... .. ...................
THE SYMBOL t (ALT ]) IS USED FOR THE DYADIC FORMAT FUNCTION.
THE RIGHT ARGUMENT MUST BE NUMERIC, OF ANY RAIK, AND THE LEFT
ARGUME.iT MUST BE A VECTOR OF INTEGERS.
THIS FUNCTION CONVERTS THE RIGHT ARGUMENT TO CHARACTER DATA Iq
A TABULAR FORMAT SPECIFIED BY THE LEFT ARGUMENtT, AS FOLLOWS:
IF THE LEFT ARGUMENT IS A SCALAR, THE RIGHT ARGUMENT WILL BE WRITTEN
WITH THAT NUMBER OF DECIMAL PL4CES.
FOR EX AMPLE: 2t14 ) 4 (F:EMEMBER THIS IS NOW CHARACTER ,JATA,
3t15 28.35 0.1475 = 15.000 28.350 .148
NOTICE THAT THE COLUMNS ARE OF EQUAL WIDTH, SEPARATED BY ONE SFACE,
IF THE LEFT ARGUMENT IS A VECTOR OF LENG1H TWO, EACH COLUMN IN THE
RIGHT ARGUMENT WILL TAKE UP THE NUMBER OF SPACES SPECIFIED BT THE
FIRST ELEMEHT OF THE LEFT ARGUMENT, AND EACH ENT-TRt WILL HAVE THE
NUMBER OF DECIMAL PLACES SPECIFIED BY THE SECOND EN4TRr It.! THE
LEFT ARGUMENT. FOR EXAMPLE:
:F A 1.2 3 THEN 5 1tm => 1.2 3.1
-4 5.55 -4.0 5.5
THE COLUMN ELEMENT MUST BE LARGE ENOUGH TO WRITE THE LONGEST ENTRY,
IN1CLUDING ONE SPACE EACH FOR A NEGATIVE SIGN OR DECIMAL POINT.
IF IT IS NOT, A ILENGTH ERROR' WILL RESULT.
REMEMBER TO ALLOW FOR A BLANK BETWEEN COLUMNS: 3 1•I 2 =) 1.02.0
THE LEFT ARGUMENT MAY ALSO BE A VECTOR OF LENGTH EQUAL TO EVACTLY
TWICE THE NUMBER OF COLUMNS IN THE RIGHT ARGUMENT,
IN THIS CASE, THE ENTRIES IN THE LEFT ARGU4ENT ARE PAIRED AND EACH
PAIR GOVERNS THE FORMAT OF THE CORRESPONDING COLUMN, AS ABOVE.
6 2 6 1 10 0 t 113.524 1 300.24 =) 113.52 1.0 300
ONE FINAL TWIST: IF THE LEFT ARGUMENT IS A NEGATIVE SCALAR, THE
163
t I
RESULI WILL BE WR:ITTEN IN- E I pENTIAL NOTATION, WITH THE NUMP'ER
OF D'ECIMAL FLACES IN THE MANTISSA EGU L TO ONE LESS THAN THE
ABSOLUTE VALUE OF THE LEFT ARGUMENT.
FOR EA FLE: -. t3 200 = 3E00 2E02
3t4.6167 10.56 400 4..62E00 1.06E01 4.00E02
164
303 FORMAT-MONArIC FORM
THE SYMBOL r (ALT ]) IS USED FOR THE MONADIC FORMAT FUNCTION,
IT TAKES A NUMERIC OR CHARACTER ARGUMENT OF ANY RANK AN£ CONVERTS
IT TO CHARACTER DATA.
THIS IS USEFUL IN CATENATING NUMERIC VARIABLES TO CHARACTER DATA.
FOR EXAMPLE' IF S =N 3 AND V =) IGO TO LINE I
YFS WILL PRODUCE A DOMAIN ERRORI BUT V, 1-
= GO TO LINE 3
165
IA
D. MAKING MODIFICATIONS
The variable HOWMODS is included in the TUTOR worksnac?
to guide the idvanced stulant, programmer, o= :tuc-or wh
wishes to expand, modify, or custrmi. the TUTO'R func':icns
and variables. Scme suggestions for improvenretM a
discussed in zhapter 3. Aay ideas f~: modification of TUTOR
are welcomed--pleise pass them alcng :o Profass: R. R. Read
or the author of this thesis, in care of the Operations
Analysis curricular office.
166
N HOW H or.S
THE FOLLOWING ARE SOME TIFS ON MODIFIPG THE TUTOR WORKSPACE:
TO MODIFY TEXT OF DESCRIPTIVE VAnIABLES:
XEDIT THE VARIABLE (CHECK MAT FOR SHCRT NAME)
BE SURE TO INCLUDE THE APPROPRIATE FIRST COLUMN CONTROL CHAFACTEr.5.
FOR GENERAL DESCRIPTION
o FOR SCALAR DESCRIFTION AND EXAMFLES
v FOR VECTOR DESCF:IPTION AND' E.AMPLES
g1 FOR MATRIX DESCRIPTION AND E,'AMPLES
FOR HIGHER-LEVEL ARRA,"S DEECRIPTION A-'-.r EXAmrPLES
TO CHANGE THE ORDER OF LESSOHS:
XEDIT MAT TO ASSIGN NEW LESSOl- UUMBERS.
THEN, TO REORDER MAT ACCORDING TO LESSON 4UMBERS, ENTER. C_:,Ef; tAT
TO WRITE NEW LESSONS:
WRITE A NEW TEXT VARIABLE, USING CONTROL CHARACTERS AS ABOVE.
XEDIT MAT TO ADD A NEW ROW. BE SURE TO INCLUDE:
COL 1-3: LESSON NUMBER
COL 28-31: NAME OF THE TE'T VARIABLE (LIMIT 4 CHARACTERS)
COL 35-51: FULL NAME OF THE LESSON (LIMIT 23 CHAF:ACTERS)
THE OTHER COLUMNS MAY BE LEFT BLANK AS THEi PEF.TAIM TO FUNCTION
SYMBOLS ONLY,
TO CHANGE OR WRITE NEW QUESTIONS (NOT DRILL):
XEDIT CUES TO CHANGE OR ADD A QUESTION, BE SURE TO ENCLOSE THE
TEXT OF THE QUESTION, BUT NOT VARIABLES, IN QUOTE MARKS,
A CARRIAGE RETURA OAT BE INCLUDED BY USING THE VARIABLE CR.,
ANSWER GROUPS MAY BE SEPARATE VARIABLES SUCH AS AR, RK,
XEDIT SHOW TO INCLUDE HEW (UESTIONS ZN ANHY GUESTION VECTOR OV,
BE SURE TO INCLUDE IHE CORRESPONDING ANSWER IN THE VECTOR AV,
167
SASPLE RUNI
This appendixc con-ta-Ins a prin-oit. : a se ssior w-th : ha
APL tutor. Student responseS to quemstions is prec=- by A
lot or Period. (This is a tgunct.-3- o)f the - :rmInal ana no-part of the input.) other Stuadent inpu-t 4is c -2 ~Yir.d 4- rtted eight spaces a-il precedal by semeral- tank .ns
ht least one sxampl.-e of each of th vazious ways to us -:h-
TMOR --s i-rcluded. Al.so the varJious types of stulent
response to gaestions and drill.s a-:-z *-onstzats-d.
168
)LOAD TUTOF
SAVED 11:11:15 12/14/83
YOU MAY USE THE APL TUTOR III THREE WAIS:
(1) ENTER# HELP
TO SELECT THE STMBOLS THAT YOU WA1T INFORMATION At-OUT,
(2) ENTER# TEACH
TO SELECT THE SYMBOLS THAT YOU WAIIT IMFORMATIONi AHND DRILL ON,
(3) ENTER: MENU
TO SEE A LIST OF SYMBOLS AND TOPICS,
IF YOU HAVE NEVER USED THE APL TUTOR BEFORE, ENTER; STAF.T
TO SEE THESE INSTRUCTIONS AGAIN AT ANY TIME, EOTER: HOW
START
WELCOME TO THE AFL TUTOR.
THE PURPOSE OF THIS WORKSPACE IS TO INTRODUCE YOU TO
'A PROGRAMMING LANGUAGE' BY DESCRIBING THE FUNCTIONS OF THE
MANY SPECIAL AFL SYMBOLS, AtD BY OUTLINING THE PROCEDURES FOA
DESIGNING YOUR OWN FUNCTIONS.
THE APL TUTOR ASSUMES YOU HAVE HAD LINEAR ALGEBRA AN D TRIGIXOME7Pl,
CALCULUS IS HOT NECESSARY,
IF YOU HAVE NEVER HAD ANY COMPUTER PROGRAMMING BEFORE, DON'T WORRY,
YOU CAN START USING APL RIGHT AWAY, AS A SUPER-SOPHISTICATED
CALCULATOR WITH MANY BUILT-IN FUNCTIONS,
IF YOU HAVE STUDIED OTHER COMPUTER PROGRAMMING LANGUAGES, RELAX.,
169
APL IS NOT LIME AN' OF THE OTHER AAJO" HIGH-LEVEL LA.tGUAGES,
YOU CAN FORGET AE4OUT DATA TYPES, INFUT/OUrPUT FORMATTItNG, .0,
MANY OF THE OTHER TEDIOUS DETAILS OF FOTRflly PASCAL, ETC,
AFTER YOU ARE SUFFICIENTLY FAMILIAR WITH THE CALCULATOkR mOtF
OF APL, YOU CAN LEARI TO DEFINE YOUR OWN FUNCTIOtIS WITH .-ISE.
HERE IS SOME BASIC INFORMATICN'1 YOU WILL NEED TO KoOW IN4 OF"EP T.D
UNDERSTAND THE APL TUTOR LESSO'S,
MONADIC AN1D DYADIC FULNCTIt-'*
YOU ARE ALREADY FAMILIAR WITH SYMBOLS WHCH EFRESENT ARITHMETIC
FUNCTIONS, SUCH AS + OR -, APL USES THESE S'YMCLS AND MAB CrT4EFS
TO REPRESENT A VARIETY OF FUNCTIONS,
MANY FUNCTIONS, SUCH AS +p REOUIRE TWO AFGUMENTS, THAT IS, TWO INFUT
NUMBERS, IN APL, THESE ARE CALLED DYADIC FUNCTIONS, A~T THE Sf-BOL
IS PLACED BETWEE4 THE ARGUMENTS; FOR EXAMPLE, 3+4,
OTHER FUNCTIONS, SUCH AS LN (NATURAL LOG), REQUIRE ONLY ONE ARGUMENT,
THESE NONADIC FUNCTION SYMBOLS ARE PLACED TO THE LEFT OF THE ,ATA
WHICH THEY ARE TO OPERATE 01, FOR EXAMFLE, LN 3 I AFL IS 03.
DATA TYPES
APL DISTINGUISHES ONLY TWO TYPES OF DATA: NUMERIC AND CHARACTER,
VERY SIMPLY, CHARACTER DATA ARE ENCLOSED ZN QUOTES (') WHEN ENTERED,
-2- IS CHARACTER DATA; 2 IS NUMERIC DATA, SOME FUNCTIONS
WILL OPERATE OH BOTH TYPES OF DATA, SOME ONL" ON NJMERIC,
ARRAYS
THE GREATEST STRENGTH OF APL LIES IN ITS ABILITY TO TAKE AN ENTIRE
ARRAY OF NUNBERS AS A SINGLE ARGUMENT, THUS TWO MATRIXES CAN BE
ADDED BY ENTERING SIMPLY A+B, WITH NO SUBSCRIPTS, LOOPS, ETC,
THIS MAKES IT IMPORTANT TO KNOW THE RANK (THE NUMBER OF DIMENSIONS)
OF DATA IN USE, A SINGLE NUMBER IS NORMALLY A SCALAR (RANK 0),
A SERIES OF NUMBERS IS A VECTOR, A ONE-DIMENSIONAL ARRAY (RANK 1).
170
NUMBERS CAN ALSO BE ARRANGED 11 ROWS AA4D COLUMNS, TO MAKE A ri.
(RANK 2). MATRIXES CA14 BE 'STACKED- TO MAKE UP THE FAGE.=
OF A
THREE-DIMEiSIONAL ARRAY, OFTEN CALLED A BOOK (RANK 3), I;1 FAT
THERE IS NO LIMIT TO THE N.UMBER OF DIMENSIONS rI ANl APL A.RR,
THE LEN r4i OF THE DIMENSIONS IS ALSO EFFECTIVELY' UILIMITED, LE1ttGH
REFERS TO THE NUMBER OF ELEMENTS IN A DIMEMSION, FOR E',AMPLE,
THE NUMBER OF ROWS, LENGTH MAY EVEN BE 0.
IN THIS TUTORIAL, A SCALAR M*A'f SE REFERRED TO AS S, L, OR F.
A VECTOR MAY BE CALLED Vo Vi, OR V), WHILE A MATFI'f IS N, MI, OF .4.
AN ARRAY, WHICH MAY BE A VECTOR, A MATRI;, OR AN A.''RAf OF Aii HIGHEF
DIMENSION, WILL BE LABELLED A, Alt OR A2.
EX-4A4PLES
WHEN EXAMPLES ARE GIVEN IN THE TEXT OF A FUNCTION DESCRIPTION-, THE
SYMBOL =) IS USED BETWEEN THE EXAMPLE INPUT AND THE E'AMFLE OUTPUT.
FOR EXAMPLE: 2+5 -) 7
THIS SYMBOL CAN BE READ AS FR:OIUCESI OR RETURNS'.
ERRORS
YOU SHOULD NOT RECEIVE ANY ERROR MESSAGES WHILE USING AFL TUTOR.
HOWEVER , YOU MAY SEE A PHRASE LIKE 'VALUE ERROR' (WITHOUT GUOTE
MARKS) WHEN YOU ARE EXPECTING A NORMAL RESPOHSE,
OR IF YOU ACCIDENTALLY HIT THE ENTER XEf WHEN THE COMFUTER :S NOT
EXPECTING AN INPUTV THE FUNCTION MA, E1-D A#BRUPTLr, LIKE THIS:
MENU [63
IF EITHER OF THESE THINGS HAPPEN, BE SURE TO ENTER: , kUPSHIFT .- )
THEN RESTART WITH ANY COMMAND.
HALTING A LESSON
YOU MAY STOP ANY LESSON AT ANY POINT WHERE A GUESTION IS ASKED
BY ENTERING: STOP
TO SEE THIS INFORMATION AGAIN AT ANY TIME, ENTER: BASICS
171
-- A
YOU MA' START A LESSON I THREE WAYS:
(1) ENTER: LESSON HEXTLESSON
TO START THE LESSON FOLLWI.I>-G THE LAST OE T'OU COMPLETED,
(2) ENTER: LESSON NNII (WHERE HNN IS A 3-EiGIT NUHBEP)
TO START LESSON NUMP.ER NNN*
TO SEE A LIST OF LESSON NUMBERS, ENTER: MEiNU
(3) ENTER: TEACH
TO SELECT THE SYMBOL THAT rOU WANT A LES5Od O.-1
TO SEE THIS INFORMATION AGAIN AT ANY TIME, ENTER: HOWTEACH
TO START YOUR FIRST LESSON IN APL, ENTER: LESSO; l
LESSON 101
THE SYMBOL - (UPSHIFT 2) IS USED ONLY TO ENTER NEGATIVE NUMBERS.
IT CAN SE USED ONLY IN FRONT OF SCALARS (SINGLE NUMBERS),
NOT VARIABLE NAMES, ARITHMETIC EXPRESSIONS, OR ARRA'|-S,
TO CHANGE ARITHMETIC SIGN USE THE SYMBOL - (UPSHZFT +.,
HOW MANY ARGUMENTS DOES THE NEGATIVE N1UMBER FUNCTION TAKE'
.1
RIGHT
WHAT RANK CAN THE RIGHT ARGUMENT OF HEGATIVE NUMBER BE?
E1NTER S FOR SCALAR
V FOR VECTOR
172
0
I T
FOR )4ATR I'
A FOR AN' RANK
.S
RIGHT
CAN NEGATIVE NUMBER TAKE CHARACTER ARGUMENTS?
.N
RIGHT
THIS IS THE END OF YOUR LESSON.
FOR THE NEXT LESSON IN SEQUENCE, ENTER: LESSOof HETLEBSOH
TO START ANOTHER LESSON, ENTER-, LESSON INNH
LESSON NEXTLESSON
4i * ***** * * * *, . * ,.,, . * * .,. ,. , ***** * * * e* * . . . ,l .e .I ,i .li ,
THE SYMBOL + IS USED FOR. THE 4OHIC CONJUGATE FUNCTION.
THIS IS AN IDENTITY FUNCTION WHICH RETURNS ITS oR'GUMENT, AFTER
EVALUATION IF NECESSARY. IT TAKES NUMERIC ARGUMENTS OF ANY rAHW.
HOW MANY ARGUMENTS DOES THE CONJUGATE FUNCTION TAKE?
#STOP
THIS LESSON HAS SEEM HALTED,
TO START ANOTHER LESSON, ENTER: LESSON HNN
17
LESSON log
THE SYMBOL - (UPSHIFT x) IS USED FOR THE DIADIC DIVISO0- FUNCTION,
IT PERFORMS SIMPLE DIVISION OH NUMERIC ARGUME'-ITS OF ANY -A"K.
HOW MANY ARGUMENTS DOES THE DIVIDE FUNCTION TAKE"
.TWO
SORRY, PLEASE TRY AGAIN
HOW MANY ARGUMENTS DOES THE DIVIDE FUHCTION TAKE?
RIGHT
WHAT RANK CAN THE LEFT ARGUME1-T OF DIVIDE lEE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRI'
A FOR ANY RAN1K
.S
SORRY, PLEASE TRi AGAINt
WHAT RANK CAN THE LEFT ARGUMENT OF DIVIDE BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX
A FOR AHr RANK
.A1
PIGHT
WHAT RANK CAN THE RIGHT ARGUMENT OF DIVIDE SE?
ENTER S FOR SCALAR.
V FOR VECTOR
X FOR MATRIX
A FOR ANY RANK
174
I .. . . . . l l
,S
SORRY, PLEASE TRY AGAI.!
WHAT RANK CANl THE F:IGHT ARGUMENT OF DIVIDE BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX
Q FOP. AZ-I -ZZ.V
SORRY, PLEASE TRY' AGAIN
WHAT RANK CAN THE RIGHT AVGUMENT OF nIVIr£E BE?
ENTER S FOR 5CALAR
V FOR VECTOR
X FOR MATRL';
A FOR AN1,: RANK
SORRY, THE CORRECT A-SWER IS A
YOU ENTERED 5 WRONG 4HSWERS OUT OF 3 CIUESTIO:S.
IF YOU WANT TO RETAKE THIS LESSOO', FITE: LEOS :1
THIS LESSON HAS BEEN HALTED.
TO START ANOTHER LESSON, En -T: LESSON 011W-1
175
i&, l
HELP
E;fTER THE SYMeOL(S) !OU WOULD LIXE INFORMATION ABOUT,
OF, FO: ME HU SELECTION, EPTER : hENU
•ME:;'U
IHFORMATIO. :S AVAILABLE Oi THE FOLLCwINO STMFOLS/TOFICEI
101 - "EGATIVENUMBEF: 102 + CONJUGATE 103 + FLUS
104 - CHArNGE SIGN 105 - mIlUS 106 x I Gl-fUM
107 x TIMES Iog RECIPROCAL 109 DIvDE
121 ,F:EN 122 I OUOTE 123 • S'E'IFAT:O-
124 p SHAPE 125 p SESHAFE 126 [ F;CKETS
12 7 R.A VEL 12 CATENATE 129 IIM:E:._GE-EFRATOF
131 / REDUCTION 132 RE DUCTION 141 E"FEH.:E0 T L
142 P POWER 143 I NATURAL LOG 144 1 LOCF:ITHM1 a TI TIMES 14. ) GEOMETRIC F47 AFCTOR.IAL
148 N NOMIAL 14 M AGN TUIE 151 \
152 " SCAN 161 r CEALIN. 162 L FLCOR
163 F MAXIMUM 164 L MINIMUM 165 1 RES :5UE
166 4 GS:tELP 167 t GRADEDOWN 160 ? RoL'-
169 ? D'EAL 180 = EGUAL 1e1 $ NOT_EOUL
182. ( LESS THAH 183 ( LESS OR E0UAL 14 > GREATEr: OF: -EUAL
185 ) GPEATER THAOi 191 NOT 192 A A ID
193 A NAND 194 . OR 195 v Nop
196 E MEMBER OF 201 * REVERSE 202 * REVERSE
203 * ROTATE 204 e ROTATE 2705 TRAHSPOSE-MOADIC
206 TRANSPOSE-'YfDIC 211 t TAKE 212 DROP
213 / COMPRESS 214 COMPRESS 215 \ Ex:FiI.
216 1, E-PAND 219 LAMINATE 231 6 MATRI" INVERSE
232 5 MATRI>._DIVIDE 241 @ OUTERPRODUCT 242 * INNERPRODUCT
301 INDEX_OF 304 T ENCODE 305 ± DECODE
306 i EXECUTE 307 t FORMAT-DfADIC 308 t FORMAT-MONADIC
TO SEE MENU AGAIH ENTER: MENU
FOR IFORMATIOH ABOUT FUNCTION, ENTER: INFO NNN (WHERE NNH IS MENU N
UMBER)
TO GO THROUGH TUTORIAL LESSON, ENTER:. LESSON NN
176
LESSON 107
THE SYMBOL ) IS USED FOF. THE DYADIC TIMES FUUCTIOH.
THIS PERFORMS SIMFLE MULTIFLICATIOU ON JU.EF:IC 4FGULMEJTS OF 4l ;.2;,Y
HOW Mawr ARGUMENTS DOES THE TIMES FLINCTION,1 TAKE-
RIGHT
WHAT RANK CAN THE LEFT ARGUMENT OF TIMES BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR XATRIX
A FOR HY RANK
SORRY, THE CORFEC A N S -EP IS A
WHAT RANK CAN THE RIGHT ARGUMENT OF 71,ES BE?
ENTER S FOR SCALAR
V FOR VECTOR
FOR MATRIX
A FOR ANY RANK
A A Y
RIGHT
FOR EXA4PLE: 2X4 > ORDER AND SPACING aRE HOT TIWFORTNT,
DOES S1XS2 EaUAL S2xSj?
RIGHT
WHAT IS THE RESULT OF:
"20 x 80
.-160
177
_ __
SOPRY, CORRECT AHSWER Is:
-1600
WHAT IS THE RESULT OF:
80 x -30
-2400
CORRECT:
TO MULTIFYf EACH ELEIiET OF A VECTOR Ef A SCALAR, ENTER S V O. Vx*.
VJxV2 RESULTS I.. THE FROE'JUCT OF COPFESPONtING ELEMENTS OF IV, '.rl.
FOR E"AmFLE: 3X(1 2 3) => 3 6 9 (1 2 3)x3 =, 3 6
(I 2 3)x(. 4 6) =) 2 3 18
IF Vj AND V2 A.E '!OT THE SAME LEJ-'TH. COU WILL GET A ILEH0TH E: F:
IF OE ARGUMENT IS A VECTOR, THE OTHER ARGUEUT MtAf BE SCaL-_r OF VECTOr:.
(T/F )
.T
RIGHT
WHAT IS THE RESULT OF:
-0.6 x -0.5 0.9
. .3 .54
SORRY, CORRECT ANSWER IS:
0.3 -0.54
WHAT IS THE RESULT OF:
0.1 x 0.2 0.7
.. 2 .7
SORRY, CORRECT ANSWER IS:
0.02 0.07
WHAT IS THE RESULT OF:
-0.2 x -0.1 0.6
.-.02 -.12
SORRY, CORRECT AHSWER IS:
0.02 -0.12
PLEASE REVIEW THE DESCR:PTIOH OF THIS FUNCTION OR TALK WITH YOUR
178
I
., ; .==,11=. - . . . ' - " " ' = - - _-" - ,3 .. ....
INSTRUCTOR BEFORE R'ETURNING TO THIS UNIT.
THIS LESSON HAS BEEN HALTED.,
TO START AHOTHER LESSON, E'TER' LESSON A NN
LESSON 124
THE SYMBOL p IS USED FOR THE MONADIC SHAPE FUNCTIOP.,
THIS RETUR4S A DESCRIPTION OF THE SIZE OF IrS ARGUmE!IT, WHICH C:40
BE NUMERIC OR CHARACTER, OF ANY :ANK.
THE SYMBOL CAN BE USED TWICE (pfp) TO :ETU,. THE RANK OF ITS aR'UIMEN.
HOW MANY ARGUMENTS DOES THE SHAPE FUNCTION TAKE?
RIGHT
WHAT RANK CAN THE RIGHT ARGUMENT OF SHAPE BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX
A FOR ANY RAHK
.A
RIGHT
IF THE ARGUMENT IS A SCALAR, pS RETURNS HO NUMBER (AN EMPTY VECTOR),
BECAUSE A SCALAR HAS NO DIMENSION, fp s 0
179
ENTER ING pV RETURNS OHE HUMI-ER WHICi REFR:ESEHT_ THE LE:40TH
THE VECTOR'S 01PE DIMENSION. fY 1
WHAT IS THE RESULT OF:
F 10 20 90-40
.F4
SORRY, THIS AHSWER NOT ACCEPT tLE, PLEASE EHTE. A NUWEiIC ANSWEF..
WHAT IS THE RESULT OF:
p 10 20 90 -40
.4
CORRECT:
WHAT IS THE RESULT OF:
r 203
.3CORRECT •
THE SHAPE OF MATRI'.'ES IS E,"FRESSEE, CS A TWO-ELEMEUT VECTOR,
THE FIRST ELEMENT EQUALS THE NUMBER OF ROWS (THE LENGTH OF THE
FIRST DIMENSION) £, THE SECOND' ELEMENT EOUALS THE ?UMBEA. OF
COLUMNS (THE LENGTH OF THE SECOND DIMENSI1).
FOR EXAMPLE: !F M : 2 3 THEN rM => 2 3 rp H
456
FOR HIGHER-LEVEL ARRAYS, pA WILL BE A VECTOR WITH AS M 41I EL-HEHTE 45
A HAS DIMENSIONS. THE NUMBER OF COLUMNS WILL ALW YS BE THE LAEr
ELEMENT OF pA. THE ,UB£ E OF ROWS WILL ALWAYS BE THE OET'-TO-LST
ELEMENT, PRECEDED BY THE NUMBER OF 'PAGES' OR PLANES, PRECEDED Bi
THE NUMBER OF 'ROOKS' OR SPACES, AHD SO O14,
FOR EXAMPLE: IF D IS A 4-DZIMENSIONAL ARRAY, PpD =) 4.
IF pD =) 5 3 4 2 THEN D HAS 5 BOOKS, EACH WITH 3 PAGES, EACH OF
WHICH HAS 4 ROWS AND 2 COLUMNS. (THIS WOULD BE DISPLiEt, AS
FIFTEEN SUCCESSIVE 4X2 MATRXES--THE FIRST THREE BEING THE FIRST
180
BOOK, THE SECOND THREE BEING THE SECOND BOOK, ETC,)
CAN SHAFE TAKE CHARACTER ARGUMENTS?
RIGHT
IF SO, WHICH ARGUMENT(S) CAN BE CHARACTER?
ENTER P FOR RIGHT,
L FOR LEFT, OR
B FOR BOTH
.R
RIGHT
THIS IS THE Em'D OF 'OUR LESSON,
FOR THE NEXT LESSON IN SE.UEZ-JCE, ENTER: LESSON I'NEX'TLESSON
TO START ANOTHER LESSON, ENTER: LESSON ;UW-
LESSON NEXTLESSON
- P * * . . .,.........6... . .. .
THE SYMBOL p IS USED FOR THE DiADIC RESHAPE FUNCTION,
THIS TAKES THE ELEMENTS OF THE RIGHT ARGUMENT AND REAPFANGES THEM
ACCORDING TO THE SHAPE SPECIFIED BY THE LEFT ARGUMENT.
THE LEFT ARGUMENT MUST BE AN INTEGER SCALAR OR A VECTOR CF ITEGER
ELEMENTS,
THE RIGHT ARGUMENT CAN BE NUMERIC OR CHARACTER, OF AN'T' RA1K,
HOW MANY ARGUMENTS DOES THE RESHAPE FUNCTIO4 TAKE?
RIGHT
191
L I
WHAT RANK CAN THE LEFT ARGLMEIIT OF RESHAPE FE'?
ENTER S FOR SCALAR
V FOR VECTOR
X- FOR MATRI.X
A FOR ANY RA.K
RIGHT
WHAT RANK CAN THE RIGHT AF.OjUMEUT OF RESHAPE BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX
A FOR ANY RA.K
,A
RIGHT
IF THE LEFT ARGUMEzET IS A SCALAR, THE RESULT WILL BE A VECTOR WITH
LENGTH EQUAL TO THE SCALAR# CO-SISTING OF THE ELEMENTS OF THE RIGHT
ARGUMENT, TAKEI IN ORER TOP LEFT TO BOTTOM RIGHT.
WHEN THERE ARE NOT ENOUGH ELEME.TS I THE RIGHT ARGUMEHT,
THE FUN.CTION WILL START OVER. AND TAKE THE ELEMENT' II.'
ORDEF AGAIN,
AS MAH TIMES AS NECESSARY TO FILL THE VECTOR,
FOR EXAMPLE: 4fl = 1 1 1 1
IF THERE ARE TOO MANY ELEMENTS OH THE RIGHT, THE E;XTRAS AI:E OMITTED
FOR EXAMPLE: 2f(l 2 3 4) = 1 2
DOES SIFS2 EQUAL S2fS?
RIGHT
WHAT IS THE RESULT OF:
2 f 0.6
182
Ii A
* .6
SORRY, CORRECT NSWER IS:
0.6 0.6
WHAT IS THE RESULT OF:
2 p 0.1.. l1 .1 .1
SORRY, CORRECT ANSWER IS:
0.1 0.1
WHAT IS THE RESULT CF:
3r0.6.. 6 .6 .6
CORRECT;
IF THE LEFT ARGUMENT IS A VECTOR, THE ELEMENrS INDICATE, I ORDCR,
LENGTH OF EACH DIMENSION IN THE RESULT.
FOR EXAMPLE: 2 2P1 2 3 4 = 1 2
3 4
THIS IS ONE WAY TO ENTER MATRIXES OR AR.RAYS OF HIGHER DIME-fSION,
IF ONE ARGUMENT IS A VECTOR, THE OTHER ARGUMENT MAY BE SCALAF Or VECTOR.
(T/F)
OT
RIGHT
WHAT IS THE RESULT OF'
3 r 0.1 4
.. 1 4 .1CORRECT:
USING A MATRIX OR HIGHER-LEVEL ARRAY AS THE LEFT ARGUMENT OF RESHAFE
WILL RESULT IN A 'RANK ERROR',
IF ONE ARGUMENT IS A MATRIX, THE OTHER ARGUMENT MUST BE A SCALAR
OR A MATRIX OF THE SAME SHARE, (T/F)
183
ir
P.I GHT
CA14 RESHAPE TAKE CHAIR4CTEP 4RGUMENTS?
RIGHT
IF SO, WHICH A.RGUMHENT(S) CAI.( BE C!NIARACTER?
ENTER R FOP RIGHT,
L FOR LEFT, ORt
f. FOR BOTH
RIGHT
THIS IS THE END OF YOUR LESSON,
FOR THE ME"T LESSON rii SEO'UEHCE, ENTER: LESSOUN ~EXTLESSONTO START AtIOTHE9 LESSON, ElITER: LESSON NMI
184
TEACH
ENTER THE SfYMBOL(S) YOU WOULD LIKE INFORMATION A!OUT,
OR FOR MENU SELECTION, ENTER' MENU
THE SYMBOL + IS USED FOR THE MONADIC CONJUGATE FUNCTION.
THIS IS AN IDENTITY FUNCTION WHICH RETURNS ITS ARGUMENT, AFTEF
EVALUATION IF NECESSARY. IT TAKES NUMERIC ARGUHENTS OF ANl' RANK.
HOW MANY ARGUMENTS DOES THE CONJUGATE FUNCTION TAKE2
.1
RIGHT
WHAT RANK CAN THE RIGHT ARGUMENT OF CONJUGATE BE?
ENTER S FOR SCALAR
V FOR VECTOR
XA FOR MATRIX
A FOR ANY;" RANK
RIGHT
EXAMPLE: +2 =>2+-3+2 =) 1.
CAN CONJUGATE TAKE CHARACTER ARGUMENTS?
RIGHT
THE SYMBOL + IS USED FOR THE DYADIC PLUS FUNCTION.
185
THIS PERFORMS SIMPLE ADrITION O- NUMERIC APGUMENTS OF ANi RAI.,
HOW MAHY AGUMENTS DOES THE PLUS FUNCTION TAKE?
.2
RIGHT
WHAT RANK CAN THE LEFT ARGUMENT OF PLUS BE?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRIX,
A FOR ANT RANK
.A
RIGHT
WHAT RANK CAN THE RIGHT ARGUMENT OF PLUS S E?
ENTER S FOR SCALAR
V FOR VECTOR
X FOR MATRI"'
A FOR ANY RANK
RIGHT
FOR EX4AMPLE: 2+2 ) 4 SPACING IS HOT IMPORTANT.
DOES S1+S2 EGUAL S2+Sl ?
,y
RIGHT
WHAT IS THE RESULT OF-
10 + 10
9+
SORRY, THIS ANSWER HOT ACCEPTABLE. PLEASE ENTER A NUMERIC ANSWE *.
WHAT IS THE RESULT OF:
186
10 + 10
.20
CORRECT:
TO AD A SCALAR TO EACH ELEMENT OF A VECTOR, ENTER EITHER .+V I +
V1+V2 WILL ADD TWO VECTORS ELEMEN.T B' ELEMENT, FOR E;AMrL.
2+(3 4 5) =) 5 6 7 (3 4 5)+2 =: 5 6 7
(3 4 5)+(5 6 7) => 8 10 12
IF THE TWO VECTORS ?EI..G ADDED ARE 'NOT THE SAME LE;.3TH,
YOU WILL GET A 'LENGTH ERROR,
IF ONE ARGUMENT IS A VECTOR, THE OTNER ARGUMENT Ai, BE SCALAR' Or ','E'TTOF;.
(T/F)
,T
RIGHT
WHAT IS THE RESULT OF-
0.2 + 0.9 0.3
.. 2 + .9 .3
SORRY , THIS ANSWER NOT ACCEPTABLE, PLEASE ENTER A NUMERIC ANSWE .,
WHAT IS THE RESULT OF:
0.2 + 0.9 0.3
.1.1 .5
CORRECT:
WHAT IS THE RESULT OF:
-5 4 3 + -5
,STOP
THIS LESSON HAS BEEN HALTED,
THIS IS THE END OF SCHEDULED LESSONS,
TO SELECT KORE LESSONS, ENTER: TEACH
187
.TEAH
ENTER THE SY*MF'L(S) YOU WC.ULD LIKE IPFOR:14ATIOH AtOUT,
OR FOR MENU SELECTIO ., ENTER: MENU
MEN~lU
1ItFORM4ATION IS AVAILAPLE ON THE FOLLOWING S1','OLS/TO,€'tCS'
101 NEGATIVE _UMESER 102 + CONJUGArE 1 33 FLU,
104 CHAHOE_SZGO J0 - mIllUS 106 s 00um
107 x TIMES 108 - RECIPROCAL 109 -
121 ( PEm 122 QUOTE 123 5 EC!:1 F
124 p SHAPE 125 R :ESHAPE 126 C BE f,%.
127 , RAVEL 128 , CATENATE 129 1 INEE'GENEF ,TI
131 / REDUCTION 132 P .EDUCTIOH 141 k E;FCIIEINTIAL
142 t POWER 143 a -ATULAL-LGG 144 * L3GRITHNM
145 0 PI_TIMES 146 a GEOMETRIC 147 1 FACTOPI4L
148 BINOMIAL 149 1 MAGU ITU.E 131 \ "caQ
12 SCAN 16i r CEILIH 162 L FLOOR
163 r MAXIMUM 164 L .INIMUM 165 ESREIE
166 4 GRADE-UP 167 TP ORADE -O 0. 1163 ? R:OLL
169 ? DtEAL 180 EQUA~L 18 HOTEUL182 LESS THAN 193 LESSO: EOUL j-4 GREATER
EP
135 GR:EATER THAN 12 A 4O I ~'D
193 is NAHD 194 v OR ;9 op
196 M MEMBER OF 201 R .EVERSE 202 a REVERSE
203 * ROTATE 204 8 ROTATE 205 1 T SAIS POSE- O I.A ,i
206 1 TRANSPOSE-,YADI, 211 T TAKE 212 D RPOF
213 / COMPRESS 214 / COMPRESS 215 \ E:'F'A1r,
216 EXPAND 219 LAMI)ATE 3 MATRI::I'VERSE
232 0 MATRIX D VItE 241 _ OUTERPRODUCT 24: INERF R
PO-JCT
301 INDEX_O F
304 " ENHCOrE 305 D ,ECODE
306 £ E'ECUTE 307 F RMAT-r, AItIC 309" FORMAT-MONADIC
TO SEE MENU AGAIN, ENTEPI MENU
FOR INFORMATION ABOUT FUNCTIOI, ENTER. IHFO 1N (WHERE INI1 IS MENU -1
UMBER )
TO GO THROUGH TUTORIAL LESSON, EHTER: L.EFON i-11
188
LESSOH j5
THE SIMBOL - (UPSHIFT +) IS USEEn FOF THE r,'v r-IC AtNUS FUnCTIO-1,
IT PERFORMS SIMPLE SUPTRACTION ON NUMEFIC P GU:4EITS OF aonf R.'
HOW MANY ARGUMENTS DOES THE MINUS FUNCTION T49K.?
RIGHT
WHAT RAHK CAN THE LEFT ARGUMENT OF MIdlUS BE?
ENTER S FOR SCALAR
V FOR VECTOR
* FOR MATRI"f
A FOR ANY RANK
.A
RIGHT
WHAT RANK CAN THE RIGHT ARGU)AENT OF HInUS PE?
ENTER S FOR SCALAR
V FOR VECTOR
FOR MATR-"
A FOR AH' RANK
A
RIGHT
FOR EXAMPLE: - 10-- =
DOES SI-S2 E0U4L S2-sl?
ON
RIGHT
WHAT IS THE RESULT OF:
0.1 - 0.3
*,,4
1.89
. . . . . . ' L
CORRECT:
TO SUSTRACT A SCALAR FROM EACH ELEMENT OF A VECTCR, ENTER" V-E.
TO SUBTRACT EACH ELEMENT OF A VECTOR FRON THE SAME SCALAR, EOTER S-1,
Vl-V2 WILL SUBTRACT EACH ELEMENT OF V) FROM THE CORPRESF'OHD 'iG
ELEMENT OF V1,
Vj AND V! MUST BE THE SAME LENGTH OF: "TOU wILL GET A 'LE GTq -FO'
FOR EXAMPLE: (3 4 5)-2 => 1 2 3 2-(3 4 5) -3
(6 7 S)-(l 2 3) =) 5 5 5
IF ONE ARGUMENT IS A VECTOR, THE OTHER ARGUMEiT MT EE SCZL-R F'.E.2FSF.,
(T/F)
T
RIGHT
WHAT IS THE RESULT OF
0.9 - 0.6 0.5
.3 .4
CORRECT
WHAT IS THE RESULT OF:
123- -5
-4 -3 -2
SORRY, CORRECT ANSWER IS:
678
WHAT IS THE RESULT OF:
-0.9 0.4 - -0.4
•.-.5 ,8
CORRECT:
WHAT IS THE RESULT OF:
-0.7 0.8 - -0.0 0.7
..1 1.5
SORRY, CORRECT ANSWER IS:
190
0.1 0.1
WHAT IS THE RESULT OF:
80 -60 50 -S0 - ?0 30 -b0 -50
.-10 -90 60 -30
CORRECT:
ENTER M-S TO SUBTRACT 'HE SCALAR S FROM EACH ELEMENT OF THE MATRI;$ M,
ENTER S-M TO 10 THE OPPOSITE,
FOR EXAMPLE: IF M 1> 1 2 THEN 4-H = 3 2 M = N C
34 1 0 1 2
M1-M2 SUBTRACTS MATRIX M2 FrOM MATRIX," MI. ELEMENT B" ELEMENT,
FOR EXAMPLE:- IF ml => 1 2 AND' ?42 =, 3 4 THEO'M-~
34 56 2 2
IF Ml ANt M-2 ARE NOT THE SAME SHAPE, A 'LENGTH ERROR' WILL RESIJLT,
TRYING TO SUBTRACT A VECTOR FRCM A mAT:IX- OP, VICE-VERSA WILL
PRODUCE A 'RANK ERROR',
IF ONE ARGUMENT IS A MATRIX, TXE OTHER ARGUMENT MUST PE A SCALAR
OR A MATRI"X OF THE SAME SHAPE, (T/F)
oT
RIGHT
THESE PRINCIPLES CAN BE EXTENDED TO HIGHER LEVEL A:RAYS.
CAN MINUS TAKE CHARACTER ARGUMENTS'?
,N
RIGHT
WRITE A TRUE STATEMENT USING -,
FOR EXAMPLE: 4=2+2
.2-2=0
SORRY, THIS STATEMENT IS NOT TRUE.
TRY AGAIN.
191
ADA4 PL( RGAMIGLNUAE UO N N NINSTRUCTIONAL F ACILIT(U) NAVAL POSTGRADUATE SCHOOLMONTEREY CA K A LANES DEC 83
UNCLASSFE F G/ NL
ILiii 128.2013
ini
1III
t-u
1111!12 1.6
MICROCOPY RESOLUTION TEST CHARTNATIONAL BUREAU OF STANDARDS-1963-A
.8i
WRITE A TRUE STATEMENT USING -.
FOR EXAMPLE! 4=2+2
.4=2+2
YOUR ANSWER DOES NOT USE -, TRY AGAZN.
WRITE A TRUE STATEMENT USING -,
FOR EXAMPLE: 4=2+2
.(2-2)=4
DO YOU WISH TO REVIEW THE DESCRIPTION OF MINUS?
ENTER Y OR H,
WRITE A TRUE STATEMENT USING -.
FOR EXAMPLE: 4=2+2
.0=2-2
CORRECT:
THIS IS THE END OF YOUR LESSON,
FOR THE NEXT LESSON IN SEOUENCE, ENTER: LESSON NEXTLESSOH
TO START ANOTHER LESSON, ENTER: LESSON NNN
192
! 'i
HELP
ENTER THE SYMSOL(S) YOU WOULD LIKE INFORMATION ABOUT,
OR ... FOR MENU SELECTION, ENTER: MENU
THE SYMBOL (UPSHIFT 1) IS USED FOR THE MONADIC INDEX GENERATING
FUNCTION,
IT IS USED WITH A SINGLE HON-NEGATIVE INTEGER ARGUMENT (SCALAR, OR
VECTOR OF LENGTH 1).
IT RETURNS A VECTOR OF INTEGERS, IN ORDER, BEGINNING WITH THE INDEX
ORIGIN, AND ENDING WITH THE ARGUMENT,
FOR EXAMPLE: 13 =) 1 2 3 1O 0 (AN EMPTY VECTOR)
THE INDEX ORIGIN 15 NORMALLY (BY DEFAULT) 1,
USING I WITH A HOH-INTEGER, NEGATIVE OR ARRAY ARGUMENT WILL PRODUCE A
$DOMAIN ERROR'.
THE SYMBOL I (UPSHIFT 1) IS USED FOR THE DYADIC INDEX OF FUNCTION,
THE LEFT ARGUMENT MUST BE A VECTOR AND THE RIGHT ARGUMENT CAN BE
ANY RANK, INDEX OF CAN BE USED WITH CHARACTER OR NUMERIC DATA,
IT RETURNS THE POSITION ZN THE LEFT ARGUMENT OF THE ELEMENTS OF THE
RIGHT ARGUMENT, THE SHAPE OF THE RESULT IS THE SAME AS THE
SHAPE OF THE RIGHT ARGUMENT,
IF THE RIGHT ARGUMENT DOES NOT OCCUR IN THE LEFT ARGUMENT, THE RESULT
WILL BE ONE PLUS THE LENGTH OF THE LEFT ARGUMENT,
FOR EXAMPLE: 4 3 2 113 x) 2 BECAUSE 3 IS IN THE SECOND POSITION
IHELLO'JtP' 2) 6 BECAUSE P IS NOT FOUND
MORE?
193
Ask
'y
VIA CHECKS EACH ELEMENT OF THE RIGHT ARGUMENT INDIVZIDUALLY,
FOR EXIAMPLE* 3 5 7 91 2 3 4 5 :) 5 5 1 5 2
IF YOU ASSIGN ALPHAIET. 'ABCOEFGHZJKLHHOPGRSTUVWXYZI
THEN ALPHADETAIAPL' =) 1 16 12
FOR MORE HELP, ENTER: HELP
191.94
MENU
INFORMATION IS AVAILABLE ON THE FOLLOWING SYMDOLS/TOPICS:
101 - NEGATIVE NUMBER 102 + CONJUGATE .103 + PLUS
104 - CHANGE-SIGN 105 - MINUS 106 x SIGNJM
107 x TIMES 108 RECIPROCAL 109 .DIVIDE
121 ( PARENS 122 ' QUOTE 123 . SPECIFICATION
124 , SHAPE 125 f RESHAPE 126 E BRACKETS
127 , RAVEL 128 CATENATE 129 1 INDEXGENERATOR
131 / REDUCTION 132 REDUCTION 141 a EXPONENTIAL
142 * POWER 143 2 NATURAL-LOG 144 a LOGARITHM
145 0 PI TIMES 146 a GEOMETRIC 147 FACTORIAL
148 : BINOMIAL 149 1 MAGNITUDE 151 \ SCAN
152 N SCAN 161 r CEILING 162 L FLOOR
163 r MAXIMUM 164 L MINIMUM 165 I RESIDUE
166 4 GRADE.UP 167 _ RADEDOWN 168 ? ROLL
169 ? DEAL 180 = EQUAL 181 $ HOTEOUAL
182 ( LESS_THAN 183 i LESS OR EQUAL 184 Z GREATER OR EQUAL
185 GREATERTHAN 191 NOT 192 A AND
193* HAND 194 v OR 195 v NOR
196 I MEMBER OF 201 * REVERSE 202 9 REVERSE
203 * ROTATE 204 * ROTATE 205 % TRANSPOSE-MONADIC
206 % TRANSPOSE-DYADIC 211 t TAKE 212 + DROP213 /COMPRESS 214 j COMPRESS 215 \ EXPAND
216 N EXPAND 219 e LAMINATE 231 a MATRIXINVERSE
232 1 MATRIX-DIVIDE 241 * OUTERPRODUCT 242 * INNER-PRODUCT
301 i INDEX-OF 304 i ENCODE 305 • DECODE
306 1 EXECUTE 307 t FORMAT-DYADIC 308 t FORMAT-MONADIC
TO SEE MENU AGAIN, ENTER: MENU
FOR INFORMATION ADOUT FUNCTIONp ENTER: INFO NNN (WHERE NNN IS MENU N,1
UMER)
TO 60 THROUGH TUTORIAL LESION, ENTER: LESSON NHN
195
.1
--------------------------------------------------- -- ;----.---- -- ,-
IFO
***THE SYMBOL = (UPSHZFT 5) IS USED FOR THE DYADIC EQUALS FUNCTION,
THS COMPARES NUMERIC OR CHARACTER ARGUMNTS OF ANY RANK,IT :ETURNS 1 FOR EACH ELEMNT OF THE LEFT ARGUMENT THAT IS IDENTICAL
TO THE CORRESPONDING ELEMENT OF THE RIGHT ARGUMENT V AND 0 FOR
'I EACH ELEMENT THAT IS NOT.
FOR EXAMPLE: 2=2 = 1 2=4 =) 0 'A'='' = 0
MORE9
FOR MORE INFORMATION, ENTER: INFO 14N
S
196
TEST 211
WHAT IS THE RESULT OF:
S-3 + -30 40 60 -90
.40 60 -90
CORRECT:
TEST OK
TEST 203
WHAT IS THE RESULT OF:
-1 0 60 70 -20 -40
SORRY, CORRECT AHSWER IS!
"40 60 70 -20
WHAT IS THE RESULT OF
2 6 0 -60 -40 -10
.-40 -10 0 -60
CORRECT:
TEST OK
TEST 152
WHAT IS THE RESULT OF*
rk 7 -6 -1
.7 7 7
CORRECT:
TEST OK
197
TEST16
WHAT IS THE RESULT OF*
D 4 0o3 -0.4
.2 1CORRECT:
WHAT IS THE RESULT 0F:
4 3 5 -6*STOP
THIS TEST HAS BCEEN HALTED.
U STOP
IF YOU WANT TO END THIS SESSION, ENTER: )SAVE
WHEN YOU SEE THE TIME, DATE, AND -TUTOR' MESSAGE, ENTER- )OFF
, )SAVE
11:42:019 12/14/83 TUTOR
0 )OFF
CONNECT= 01:10:027 VIRTCPU= 000:02.88 TOTCPU= 000:11.11
CONNECT= $5.87 TOTCPU= $1.85 SI0= $0.41 TOTAL= $8.13
HULT BY SHIFT FACTOR: =1(DAY)i =0.6(EVE)i =0.3(NIGHTS)
LOGOFF AT 11:42:#42 PST WEDNESDAY 12/14/93
VM/370 ONLINE
198
BIBLIOGRAPHY
Gilman, L e ana d and Race Allen J. APL--Aq In-:eractiV= 1p~ah 2r.1 eA. Rev YBri: John wi.lay ~SUT T
Ra~ey ~ G~d O~~ttoa tt James B., and Musgravet Garild 1..:!!% -ZAT: A
199
INITIAL DISTRIBUTIDS LIST
o. Ccoi~s
1. Defense T.3chkical Information anter 2Cameron Stat-onAlexandria, Virginia 22314
2. Library, -ode 0142 2Naval Post raduato, SchoolMonterey, California 93943
3. Denni s R. Mart Code 0141Nava Pcst raauate SchoolMonterey, California 93943
4. LT Katherine S. Lines 1c/o Deputy CommanderOperational Test and Evaluation Force, PacificNaval Air Station North IslandSan Diego, California 92135
5. Professor R. R. Read, Code 55R9 1Naval Post raduate SchoolMonterey, California 93943
20
~I