More thinking. Less code.
Dyalog APL is an array-oriented programming language that lets you express complex ideas in remarkably little code.
We build it, support it, and have done for over 40 years.
Explore Dyalog
Try Dyalog free for educational and non-commercial use, get started or view the docs.
Trusted for over 40 years
Built, supported, and improved by the same people who make the language. Free to learn and explore, with commercial licences for commercial work.
3 ways
to get support
Email, phone, or online, straight to the people who build it
Less code you say?
Dyalog APL works on whole arrays at once, so tasks that need loops and bookkeeping in most languages collapse into a single expression. And less code isn’t just tidier: it is less to read, less to maintain, and less to get wrong. Compare it for yourself below, across three everyday problems and six mainstream languages.
Already know another language? Start at the first example. Each one adds a single idea.
Suggest a better version
What we are looking for
These examples exist so that someone who already knows your language can read the APL beside it. The best version is therefore the one a working developer in that language would actually write, not the shortest one possible.
Your submission must
- Solve the same problem as the existing example.
- Accept the same kind of variable input rather than being hard-coded for the example values shown.
- Produce the correct result for valid inputs.
- Be valid, runnable code in the selected language rather than pseudocode.
- Not contain a pre-generated or hard-coded answer.
- Not depend on a third-party package beyond the array or numerics library your language's community treats as standard. NumPy counts as standard for Python; a web framework does not.
Built-ins are welcome
If your language has the operation built in, show it. Python should use NumPy, Rust should use windows, Clojure should use partition. Part of what these pages teach is which languages hand you the operation and which make you write it out, so hiding a built-in to make the code longer would defeat the point.
Anything in the standard library counts as built in. Imports and includes are shown above the code, greyed out, wherever a snippet needs them.
What counts as an improvement
- It reads the way your language is normally written.
- It is easier for a newcomer to follow.
- It maps more clearly onto the APL beside it, so the correspondence is easier to see.
Dyalog Ltd will review submissions and decide which version is most appropriate to display.
Looks Strange? Good.
Dyalog APL looks nothing like the languages you might already know. That is rather the point. Most people find it clicks faster than they expect, and there is a gentle way in.
Wherever You Are Starting From
New to all this
Never seen a glyph in your life? This is the friendly front door.
You already code
You know your way around a language. Here is the fast lane.
Weighing it up for a team
Dyalog support, training, consultancy, and services for business.
Already with us
Downloads, docs, and what changed in the latest release.
Ready to Think More?
Download Dyalog free for non-commercial use, or talk to us about putting it to work on your problem.