Problem Solving with APL

APL’s compact syntax and carefully chosen array-oriented primitive functions and operators make it well suited to solving in a wide variety of domains.

Problem solving tasks can be an excellent way to explore the language beyond the fundamentals, learn about language features and try out new techniques. By exploring different solutions, you can try expressing your ideas in different ways and learn the performance implications of different approaches.

APL Quest

APL Quest is the title used for a series of live chat sessions held by Adám Brudzewsky with guest appearances by Rich Park. The sessions run on Fridays at 15:00 UTC, switching to 13:00 UTC from October. Each session focuses on one problem from Phase 1 of a past APL Problem Solving Competition, beginning with problem 1 from the 2013 round, and is followed up by publication of the code and a video that summarises the solutions.

An example APL Quest video. Rise and Fall (APL Quest 2020-9).

Kattis Problem Archive

Thousands of automatically validated problems to solve in dozens of programming languages, including APL!

The Kattis logo.

Advent of Code

Advent of Code is an annual competition in which people compete to submit solutions the fastest (provided you can wake up at the right time). It has become a popular focus for APL learners to develop their abilities

Many APLers publish their solutions as code or make videos.

Adám Brudzewsky’s informational video (with companion code) to parse text files that are similar to many common input formats given by AoC.

Code Golf

Code golf is a type of recreational computer programming competition in which participants strive to achieve the shortest possible source code that solves a given problem. While the exact origins of this sport is lost to history, it is known to have been popular with early APLers.

While dedicated golfing languages (programming languages constructed expressly for the purpose of winning code golf competitions) usually can accomplish the goal with shorter code than APL can muster, APL does almost always have the upper hand when compared to other production languages. This is thanks to APL’s array comprehension and common operations being represented by single characters.

The Code Golf logo.



Know of some more?