For some reason, the topic of APL came up yesterday at the office. APL is one wild-ass idiosyncratic language. It stands for A Programming Language, and was created in 1962 by Ken Iverson. One of its most unusual aspects is that it requires an entirely new character set, including not only Greek letters, but new symbols created by Iverson. To add to the typographic diversity, even more new symbols were created by backspacing and overstriking two symbols together!
Here’s an example I scanned from an APL book:
The lamp character introducing the comments is formed by overstriking a small circle with a mathematical intersection character. The difficulty of entering this symbol may help explain the typical lack of comments in APL programs!
Procedures are created with numbered lines of statements, and the only structuring mechanism is the goto (the right-pointing arrow):
APL is really a calculator on mega-steroids. Its pervasive matrix operations give the programs their particular flavor. Looping is rare, with data in matrices acted on with single strokes. To use an analogy, where a more typical programming language lets you deal cards one at a time from a deck, with APL you usually figure out how to throw the entire deck into the air so that the cards all land where they should. For example, this hex dump program has no loops or gotos at all.
There are more modern implementations of APL that solve the character set problem. J seems to be just an implementation of APL without the wacky characters, although the home page doesn’t mention APL!