GNU APL

From Rosetta Code
Revision as of 04:14, 23 July 2021 by Russtopia (talk | contribs) (Added point-free term as synonym to tacit syntax)
This page is a stub. It needs more information! You can help Rosetta Code by filling it in!
GNU APL is an implementation of APL. Other implementations of APL.

GNU APL is a cross platform APL interpreter.

The APL interpreter is an (almost) complete implementation of ISO standard 13751 aka. Programming Language APL, Extended.

The APL interpreter has implemented:

- nested arrays and related functions

- complex numbers, and

- a shared variable interface

In general, it follows IBM's APL2 implementation. For a wonderful introduction to APL2, refer to APL2 At A Glance, by Brown, Pakin & Polivka.

Those who are studying APL would do well to contrast GNU APL with Dyalog APL, a proprietary implementation that is actively developed by its namesake company, which has diverged from APL2 in some respects. Many examples nowadays which are found online use Dyalog operators and syntax extensions; to understand the differences refer to this discussion of APL "evolution" or "migration" levels and how they affect the meaning of certain operators: Mix (up arrow) in GNU APL?

The most important difference between APL2 and Dyalog APL is that Dyalog supports point-free (also called 'tacit') syntax, which GNU APL / APL2 does not support. However, with some basic knowledge of APL2 and how Dyalog differs, programs can be translated from one to the other with minimal effort.