APL On The Net
Articles & Programs
Other APL Sites
If you're interested in trying APL on your PC, one good way of learning the language is by reading APL Notes, my introduction to APL. The book comes with two great APL interpreters (the recently-decomissioned 32-bit APL*PLUS II/386 system, which includes nested arrays, and the older 16-bit APL*PLUS/SE interpreter, which is useable on older PCs), plus reference cards for the language and keyboard, a debugger, graphics tools, and utility programs—everything you need to learn APL and get started using it.
The 16-bit APL*PLUS/SE interpreter (a pre-nested array system with 64K limits on array sizes) is available for free download. However, the documentation with the freeware package is sparse, and it lacks the extra material included with APL Notes.
IBM has two downloadable versions of their APL2 product available. One is a time-limited trial version of their current release, Workstation APL2 for Windows, and the other is TryAPL2, a much older version of APL2 for DOS, dating from 1995. (Although TryAPL2 is not time-limited, it is fairly seriously crippled by being unable to demonstrate APL's normal interactive debugging capabilities.) Both these systems include nested arrays.
(Click the Download link on the IBM page to get to the free software.)
Another freeware APL system is SHARP APL/PC. This APL includes I.P. Sharp's unique flavor of nested arrays (called "boxed" arrays). It's not as fast as other systems because it runs via an IBM System/360 emulator, but arrays are not limited to 64K as they are in APL*PLUS/SE and TryAPL2.
And an awesome development in the APL world is Soliton's decision to release the new SHARP APL for Linux free for personal use. This is a serious, state-of-the-art APL system, priced right. If you're running Linux, download this interpreter today (before they change their mind!).
Several of the articles at this site are written as tutorials, showing how the algorithms work step-by-step and sometimes explaining how they were developed. If you're new to APL or are not yet an expert, you might want to start with these articles:
Hex Dump A relatively simple example consisting of a program that reads a file and produces ASCII and hexadecimal (base-16) listings. Includes a line-by-line description of the program.
Set Game Tutorial An intermediate example that involves the use of multidimensional arrays. The article describes ways of visualizing and understanding operations on arrays having four or more dimensions. (Plus, it describes a rather cool pattern- recognition game.)
Non-Exponential Formatting A more advanced and technical example that describes how to prevent APL from displaying large numbers in exponential notation. The solution involves the use of "partition functions", a still-useful technique that has largely been forgotten with the advent of nested arrays.
JimW's Home Page