GNU APL: Difference between revisions

Clarified Dyalog APL extensions over APL2/GNU APL.
m (Added point-free term as synonym to tacit syntax)
(Clarified Dyalog APL extensions over APL2/GNU APL.)
 
Line 2:
{{implementation|APL}}
 
[https://www.gnu.org/software/apl/ GNU APL] is a cross platform APL (APL2) interpreter.
 
TheGNU APL interpreter is an (almost) complete implementation of ISO standard 13751 aka. Programming Language APL, Extended.
 
The APL interpreter has implemented:
Line 13:
 
- a shared variable interface
 
Extensions to the APL2 standard include:
 
- scripting
 
- SQL interface
 
- structured variables and associative arrays
 
- a GTK3 interface for plotting and even building full UI applications in APL.
 
In general, it follows IBM's APL2 implementation. For a wonderful introduction to APL2, refer to [https://archive.org/details/apl-2-at-a-glance-brown-pakin-polivka APL2 At A Glance], by Brown, Pakin & Polivka.
Line 18 ⟶ 28:
Those who are studying APL would do well to contrast GNU APL with [https://rosettacode.org/wiki/Dyalog_APL 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: [https://groups.google.com/g/comp.lang.apl/c/QNPOntjvIHM Mix (up arrow) in GNU APL?]
 
The most important difference between APL2 and Dyalog APL is that Dyalog supportsadds support for ''point-freetacit'' (alsomore commonly called [https://aplwiki.com/wiki/Tacit_programming 'tacitpoint free']) syntax, whichif/then/else GNUbranch APLcontrol /rather APL2than doesjust notthe supporttraditional → branch, and supports multiple statements within dfns (lambda functions). However, with some basic knowledge of APL2 and how Dyalog differs, programs can be translated from one to the other with minimal effort.
67

edits