We Made It

The intent of this course is to guide a person with a high school / secondary mathematics (or equivalent) education but no APL experience (and possibly no prior programming experience) to a point where they can:

The user of this course should understand that there are often many decent, and sometimes equally good, different ways of expressing the same thought in APL. While a huge number and variety of problems can be tackled using the techniques shown so far, as your learning continues you will discover ever more new things. You may even discover as yet unknown techniques.

Your Resources

There are some places you can go to get help.


*Idioms
an idiom in APL is a short phrase to perform some specific task. For example, here is how to remove leading, trailing and duplicate spaces from a text vector. In Dyalog specifically, some idioms are recognised by the interpreter and cause special code to be executed which is faster and uses less memory than if the the whole expression was interpreted primitive-by-primitive. In contrast to idioms in natural language, which have a literal meaning different to their actual meaning, APL idioms say exactly what they do. I find it interesting that the phrase commonly used to demonstrate idioms in English, raining cats and dogs, is not very commonly used in speech anymore.

Activity

If you want to continue learning, using and practising APL but don’t have a particular goal in mind, here are some things you can do now.

Request

Currently the text uses common programming terms without explicit definition, and the material should be reviewed and edited to be more inclusive of people with less experience.

Of course there is always a trade-off between required prior knowledge and amount of material in a course. Eventually I would like to expand leftwards, and write material which may be valuable to people with even less experience than those currently targeted. However, I suspect that specialised tutorials on intermediate APL will come before that. I intend to seek out more learning resources and list them on the APL Wiki.