______ _ __ __ __ ___ ____ __
/ ____// | / // / / / / | / __ \ / /
/ / __ / |/ // / / / / /| | / /_/ // /
/ /_/ // /| // /_/ / / ___ | / ____// /___
\____//_/ |_/ \____/ /_/ |_|/_/ /_____/
In addition to some APL examples, this page has all of the APL-related
books I've gathered across the net. The most notable *and* useful for
the APL newcomer is:
APL2 At A Glance, by Brown, Pakin, Polivka
^^^^
... this is *the best* intro, bar none, for APL newcomers. The print
edition is extremely scarce nowadays so it's now in the Internet Archive
(English version scanned by yours truly). Local copy linked above, for your
perusal and edification.
All of the examples work well in GNU APL and most will probably work
in Dyalog (a commercial implementation that has some nonstandard extensions)
by running ⎕ML ← 2 first.
I would recommend GNU APL since it's Open Source and you can hack on
it yourself.
You should give it a try!
Many, many more books and articles on APL can be found here in my
archive:
Visit the APL book archive. PDF format.
APL stands for "A Programming Language" and is the brainchild of
Kenneth E. Iverson. He was honored with the Turing Award in 1979
"for his pioneering effort in programming languages" and the
mathematical notation that became the core of APL.
It is an array-oriented programming language, using notation
heavily influenced by mathematics but you don't need to be a math
whiz to use or appreciate it!
APL's extended symbol set can be intimidating at first, both for
its unfamiliarity and the minor setup one must do on one's machine
in order to enable entry via a standard keyboard. Don't worry, it
is not too hard to set up.
APL enables the expression of complex algorithms in very concise
and intuitive notation (once you learn the symbols for the primitves,
that is!)
For example, the multiplication table, from 1 to 5:
---
(⍳5)∘.×⍳5 ┌→────────────┐ ↓1 2 3 4 5│ │2 4 6 8 10│ │3 6 9 12 15│ │4 8 12 16 20│ │5 10 15 20 25│ └─────────────┘
Find all primes from 1 to N
---
⍝[ref: Enthusiasticon 2019 - An Introduction to APL | https://youtu.be/UltnvW83_CQ] primesTo ← {{⍵{(~⍺∊⍵)/⍺}{⍵∘.×⍵}⍵}1↓⍳⍵} primesTo 100 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
Determine if a word is an anagram of any other list of words
Compute if N is an Armstrong (Narcissistic) number
Output the road-trip favourite, "99 Bottles of Beer"
Hunt the Wumpus written in APL!
TODO: Create a Gemini mirror of the GNU APL home page with an APL
intro and installation/setup instructions.
Command table for GNU APL's function editor