Skip to content

Welcome to the wonderful world of APL programming!

APL is quirky, different, and not like the other programming languages.


One December, I was doing the Advent of Code (AoC) challenges. These are fun, small programming projects that are given to you in the form of a Christmas advent calendar. There are 2 challenges per day, for a grand total of 50 throughout December.

Throughout the month, text like this was posted on forums:

east   {(+¯1)-}     0<∧0=1   ⍝ (1)!
  1. Example taken from https://github.com/pitr/aoc/blob/main/2021/25.apl

I was very confused. These were meant to be solutions to the AoC problems. However, I couldn't see how in the world these could represent any sort of algorithm, much less a solution. Were these...

  • Encrypted solutions?
  • Solutions encoded in some weird format?
  • Trolls meant to confuse me?
  • My computer bugging out?

Turns out, it was none of these. After a bit more research, I found out that it was something called APL.

APL

APL stands for...

A

Programming

Language.


Great naming, right?


Out of curiosity, I tried finding APL solutions to the AoC challenges after Christmas passed. At one point, I found a solution that spanned just 50 lines. As a note, a Python solution for one challenge (towards the end of the month) is usually about 150-200 lines long. In its 50 lines, the APL solution apparently solved all the problems.

That was cool.


APL looks different, feels different, and it challenges your normal way of thinking about programming.

I hope that this course will expand your mind and let you approach programming from a whole new perspective.