What is APL?


Much of HMW's work is the the Agile, Array Programming language, APL. For those of you who don't know much about it, we've prepared a page or two of basic information and pointer sto the most important resources

You want to know what's so good about APL? How about Conway's Game Of Life as a single APL expression? Just watch this...

Some Background

The following is from Why APL? on the SigAPL site, which is part of the ACM:

The language was invented by Kenneth E. Iverson while at Harvard University. The language, originally titled "Iverson Notation", was designed to overcome the inherent ambiguities and points of confusion found when dealing with standard mathematical notation. It was later described in 1962 in a book simply titled "A Programming Language" (hence APL). Towards the end of the sixties, largely through the efforts of IBM, the computer community gained its first exposure to APL. Iverson received the Turing Award in 1980 for this work..

APL is a user-oriented notation, particularly well suited for communication from people to other people or to computers. The notation consists of a set of symbols (letters, numbers, punctuation, algebra, and special shapes), with a very simple set of rules (syntax) for putting them together to describe the processing of data. The data can be either numeric or literal (which includes words and text handling).

In fact there are about a hundred different "primitive" (i.e. fundamental to APL) operations which can be performed. This can be compared to having a calculator with over 100 different function keys.

I have listed every APL dialect and related array language I can think of and a fair number of APL Resources, all the user groups and forums I can find and could try to make a comprehensive list of APL web sites, but with the typical economy of effort expected of an APLer or agile developer, this is an adequate, working list, �but not a definitive one.