New to APL
These resources are intended for anyone who has programmed before but is new to APL and Dyalog.
🏋️ Do
Our APL Course is a self-study introduction to Dyalog APL, comprising a set of guided problem sets with examples and explained solutions.
The APL Tutor is a conversational tutorial that takes you through the foundations of APL (terminology, conventions, and functionality). It includes exercises in reading and writing APL. It looks a little dated but is a useful introduction.
TryAPL offers an interactive environment that allows users to play with simple APL expressions. Its Learn tab includes tutorials in which various scenarios are explored.
The APL Challenge is a quarterly competition aimed at newcomers to APL. Its ten entry-level problems offer a chance of winning cash prizes.
APL Quest is a set of 110 easy-to-intermediate-level problems that can be solved in one line of code. It includes automatic grading, reference solutions, and walkthroughs. These problems were originally part of the APL Problem Solving Competition, which ran from 2009 until 2023. It is more advanced than the APL Challenge, but still aimed at newcomers to APL.
📖 Read
Learning APL is an excellent introduction to modern APL for experienced programmers.
🎞️ Watch
The Learn APL with Neural Networks YouTube series aims to teach you APL while building a basic machine learning framework from first principles. By the end of the series you will have created a machine learning framework and used it to train a neural network that recognises handwritten digits. The flexibility of what you have created will mean that you are also able to tackle other problems.
Dyalog Basics: Namespaces in Dyalog is an introduction to namespaces, including what they are, why they’re useful, how to create and use them, the system function ⎕NS, the root namespace #, the namespace ⎕SE, and namespace references.
APL Seeds was a series of events aimed at new and prospective users of APL. Each event comprised brief overviews of the language, introductions to available resources, and demonstrations of real-world applications using APL. Recordings of the presentations (and downloadable materials) are available.
Need Some Help?
Getting started with any new programming language can seem like a daunting task, and you might appreciate some individual/specific guidance to help you if you encounter issues.
In addition to asking us questions directly (in the Dyalog Forums or through one of our social media channels), APL has a thriving and enthusiastic community of users who are very happy to answer questions:
- Chat in the APL Orchard, an active chat room
- Ask a question on Stack Overflow or the r/apljk subreddit
If you prefer more directed learning, or would like to attend hands-on sessions with your peers, we offer various training courses and workshops.