A+: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
(→‎Primitives: Find here is same as Index Of, and is different from ⍷)
(Change source to link to main repository, not src directory)
Line 9: Line 9:
| latest release version  = 4.22 (unversioned) / 2014
| latest release version  = 4.22 (unversioned) / 2014
| implementation language  = [[wikipedia:C++|C++]]
| implementation language  = [[wikipedia:C++|C++]]
| source                  = [https://github.com/PlanetAPL/a-plus/tree/master/src GitHub]
| source                  = [https://github.com/PlanetAPL/a-plus GitHub]
| platforms                = x86, x86_64, IBM POWER, IA64, z/Architecture,  
| platforms                = x86, x86_64, IBM POWER, IA64, z/Architecture,  
| operating systems        = Windows, Linux, macOS, AIX, IRIX, BSD, Solaris, Tru64
| operating systems        = Windows, Linux, macOS, AIX, IRIX, BSD, Solaris, Tru64

Revision as of 18:02, 8 February 2021

This page is about the Morgan Stanley dialect. For the project based on APL 90 (dialect) and presented at APL90, which replaced functions with first-class blocks, see A+ (Girardot).

A+ is an extension of the A language. A was created in 1985 by Arthur Whitney, then of Morgan Stanley. At the time, various departments had a significant investment in APL applications and talent, APL being a language well-suited to the manipulation of large arrays of numbers. As technology was moving from the mainframe to distributed systems, there was a search for a suitable APL implementation to run on SunOS, the distributed platform of the period, and this prompted Whitney to create A as a statically typed dialect of APL with various novelties like symbols as a simple scalar type and the Rank operator.

Over the course of the next few years, various extensions were made to the language, culminating in A+ in 1988, with "+" referring to the graphical user interface. While an A+ development group was formally in 1992, presented the very first version of K that very same year, and by 1994, K became the official successor of A+. In 2001, the source code was made public, and various volunteers took over development until 2008. From then until 2014 it was maintained by Robert Lefkowitz.

Primitives

Glyph Dyadic Monadic
+ Add Identity
- Subtract Negate
× Multiply Sign
÷ Divide Reciprocal
* Power Exponential
Log Natural log
| Residue Absolute value
Decode Pack
Encode Unpack
? Deal Roll
Circle (sin, cos, ...) Pi times
Solve Matrix Inverse
Max Ceiling
Min Floor
< Less than Enclose
Less than or Equal to
= Equal to
> Greater than Disclose
Greater than or Equal to
Not equal to
Bins Grade up
Grade down
Match Depth
Find Interval
Member Rake (like Enlist)
^ And Stop
Or or Cast Type
Format Default Format
Execute in Context or Protected Execute Execute
% Value in Context Value (of a symbol)
Assignment or Selective Assignment Result (returns from functions)
Pick Raze
# Choose Count
[;] Bracket Indexing (varying number of arguments)
Take Signal
Drop Print
Rotate Reverse
Transpose Axes Transpose
! Restructure Item Ravel
Partition (a little like Split) Partition Count
Reshape Shape
Left Null (returns ())
Right
Combine Symbols Separate Symbols
, Catenate Ravel
~ Laminate Not
/ Replicate Reduce (+ × ⌈ ⌊ ∧ ∨)
\ Expand Scan (+ × ⌈ ⌊ ∧ ∨)
. Inner Product (+.× ⌈.+ ⌊.+)
∘. Outer Product (+ - × ÷ | ⌈ ⌊ < ≤ = ≥ > ≠)
@ Rank
¨ Each or Apply
Bitwise

External links

APL dialects [edit]
Maintained APL+WinAPL2APL64APL\ivApletteAprilCo-dfnsDyalog APLDyalog APL Visiondzaima/APLGNU APLKapNARS2000PometoTinyAPL
Historical A Programming LanguageA+ (A) ∙ APL#APL2CAPL\360APL/700APL\1130APL\3000APL.68000APL*PLUSAPL.jlAPL.SVAPLXExtended Dyalog APLIverson notationIVSYS/7090NARSngn/aplopenAPLOperators and FunctionsPATRowanSAXSHARP APLRationalized APLVisualAPL (APLNext) ∙ VS APLYork APL
Derivatives AHPLBQNCoSyELIGleeIIvyJJellyK (Goal, Klong, Q) ∙ KamilaLispLang5LilNialRADUiua
Overviews Comparison of APL dialectsTimeline of array languagesTimeline of influential array languagesFamily tree of array languages