1st Edition

APL with a Mathematical Accent

By C.A. Reiter, W.R. Jones Copyright 1990
    224 Pages
    by Chapman & Hall

    224 Pages
    by Chapman & Hall

    This book provides an introduction to the computer language A Programming Language (APL), providing quick access to the powerful computational capabilities of the language for the newcomer to APL. It focuses on the mathematical nature of the language, and complements standard curricula.

    First Steps With APL

    Interacting with APL

    Order of Execution

    Negative Sign, Minus Sign

    Assignment and Variable Names

    Example: Heron’s Formula

    The Equals Function

    Examples: Right Triangle Test, Conditional Incrementing

    Dyadic, Monadic Functions

    Functions with Vector Arguments

    Examples: Some Uses of Vector Arithmetic

    Shape, Reduction Operator

    Examples: Average, Dot Product

    More on the Reduction Operator

    Index Generator

    Examples: A Partial Sum, A Sequence for e

    Number Forms and Print Precision

    Workspaces, System Commands

    Exiting APL

    Exercises

    Fundamentals of Arrays

    Example: Polynomial Evaluation

    Elementwise Arithmetic

    Reshape: Defining Arrays

    Reduction

    Outer Product

    Example: Evaluation of Polynomials at Several Points

    Catenation

    Catenation of Matrices

    Example: Forming a Blockwise Diagonal Matrix

    Catenation of Matrices with Vectors

    Indexing

    Example: Elementary Row Operations on Matrices

    Shape

    Empty Arrays

    Exercises

    Elementary Function Definition

    Function Definition

    Example: A Function for Polynomial Evaluation

    Example: Approximating Areas Using Right-Hand Endpoints

    Random Integers, Random Reals

    Correcting a Function Line

    Commands for Editing Functions

    Suspended Functions; Interrupts

    System Commands

    Branching: Simple Loops

    Example: Newton’s Method

    Statement Separation, Diamond

    Explicit Output

    Example: Fibonacci Numbers

    Exercises

    Matrix Algebra

    Matrix Product

    Example: Markov Processes

    Solving Linear Systems Matrix Divide

    Example: Some Solutions of Linear Systems

    Outer Product

    Example: Polynomial Interpolation

    Example: Polynomial Evaluation Revisited

    Least-Squares Solutions of Linear Systems

    Example: Least-Squares Polynomial Curve Fitting

    Matrix Inverse

    Matrix Transpose

    Example: A Formula Using Transpose

    Example: Gram-Schmidt Orthogonalization

    Example: Testing for Orthonormality

    The Power Method

    Exercises

    Data Comparison and Logical Functions

    Relational Functions: Comparatives

    Example: Averages on Selected Scores

    Logical Functions

    Example: Frequency Distribution

    Generalized Inner Product: Vectors

    Example: Weighted Average

    Generalized Inner Product: General Arrays

    Example: Paths in Graphs

    Floor, Ceiling

    Example: Rounding to a Decimal Position

    Membership Function

    Comparison Tolerance

    Exercises

    Simulation and More Mathematical Functions

    Roll, Deal, and Random Link

    Example: Matching Partners

    Example: Simulating A Classical Probability Experiment

    Example: Polya’s Urn Scheme

    Factorial and Binomial

    Example: Binomial Distribution

    Example: Polynomial Translation

    Trigonometric Functions

    Example: Monte Carlo Integration

    Exercises

    Statistics and Graphics

    Mean and Standard Deviation

    Maximum and Minimum

    Example: Range

    Grade Up

    Example: Median

    Character Arrays

    Example: Frequencies

    Example: Histograms

    Replicate on Vectors

    Example: Separating Data

    Scan

    Example: Cumulative Histogram

    Plotting X-Y Points

    Example: Least-Squares Line Fitting

    Sampling

    Example: Sampling from an Exponential Population

    Example: Sampling from a Binomial Distribution

    Example: Sampling from a Normal Population

    Exercises

    More Array Manipulation

    Take and Drop Vectors

    Example: Polynomial Addition

    Take and Drop on Matrices

    Ravel Replicate, Compression, and Expansion

    Example: Constructing Data with a Given Distribution

    Reverse

    Rotate

    Example: Polynomial Multiplication

    Dyadic Transpose

    Transpose on Higher Dimensional Arrays

    Laminate

    Example: Constructing Banded Matrices

    Exercises

    Sorting and Coding

    Grade up, Grade Down

    Grade up, Grade Down on Matrices

    Example: Manipulation of Grade Point Average Statistics

    Index Relative to a Vector

    Example: Alphabetization

    Example: Removing Duplicated and Frequency Revisited

    Index Origin

    Example: Polynomial Evaluation in Both Index Origins

    Residue: Modular Reduction

    Example: Finite Field Tables

    Example: Alphabetization with Mixed-Case Letters

    Represent

    Base Value

    Example: Polynomial Evaluation, Finis

    Represent and Base Value on Arrays

    Atomic Vector

    Example: Encoding a String into Binary

    Example: Hamming Code for Error Correction

    Example: Hamming Code on Natural Text

    Exercises

    More Function Definition

    Functions for Programming Uses

    Example: Descriptive Statistics

    Branching

    Line Labels

    Example: Aggregating Preferential Ballots

    Multioption Branches

    Example: The Bisection Method

    Recursive Functions

    Example: Generating Permutations

    Example: Adaptive Integration

    Quad: Input and Output

    Quote-Quad: Input and Output

    Example: Entering a Matrix Name-List

    Example: More Adaptive Integration

    Format

    Example: Formatting an Interest Table

    Execute

    Example: Entering a Matrix Name-List, Revisited

    Example: Matrix to a Power-of-2 Power

    Functions as Arguments of Functions

    Exercises

    Appendix A

    Help, Error Messages, and Debugging

    A.1 Surprises for New Users

    A.2 Error Messages

    A.3 Suspended Functions

    A.4 Example: Debugging with Quad Output

    A.5 Setting Traces and Stops

    Appendix B

    Workspace Environment

    B.1 Workspace Contents: Saving and Loading

    B.2 Workspace Management

    B.3 System Commands

    B.4 System Variables

    B.5 System Reports and System Functions

    Appendix C

    Keyboards

    Appendix D

    Answers to Selected Exercises

    Bibliography

    References

    Index

    Biography

    Reiter, C.A.