Main Page

From APL Wiki
Jump to navigation Jump to search

Welcome to APL Wiki,

320 articles about APL that anyone can edit

APL is an array-oriented programming language. Its natural, concise syntax lets you develop shorter programs while thinking more about the problem you're trying to solve than how to express it to a computer.

Running APL

Traditionally a commercial language, there are now quite a few implementations available to download for free without feature limitations, and several of these can be tried online without installing anything.

Running APLTry APL online

Hello world

Taking up a new programming language can be a daunting task. While it can appear cryptic at first, you can learn to write and read APL with little effort. A few introductory guides have been created to help you in the process.

IntroductionsLearning resourcesLanguage overview

Who uses it?

APL is used by both hobbyists and application developers. There are active user groups all around the globe, many of these hold regular in-person meet-ups. There is also a popular online APL chat room.

Case studiesCommunity overview


APL Wiki is an online open-content wiki; that is, a voluntary association of individuals and groups working to develop a common knowledge resource. The structure of the project allows anyone with an Internet connection to alter its content.

How to contributeNew pages Wanted pages


APL's terseness means that substantial programs are expressible in a small space, relative to many other programming languages. Below are just a taste. Many more, and fully explained, examples are in the simple examples article.

Split text by delimiter

With the introduction of tacit programming, many functions can be expressed in fewer characters than even the shortest fitting name. For example is but three characters, while you would need five for the name Split:

Try it now!

Works in: Dyalog APL

Full explanation…

Conway's "Game of Life"

John Scholes is famous for the following implementation of Conway's Game of Life:

Try it now!

      world2 2 2 20 12 5 2 4 1
0 1 0 0 0 0
0 1 1 0 1 0
0 0 0 1 0 0
0 0 1 0 0 1
      {1 .3 4=+/,¯1 0 1∘.¯1 0 1∘.⌽⊂} world
1 1 0 1 0 0
0 1 1 1 0 0
0 1 0 1 1 0
0 0 1 0 0 0
Works in: Dyalog APL, ngn/apl

Full article…

Further simple examplesAdvanced examples