A+: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Text replacement - "</source>" to "</syntaxhighlight>")
(→‎Primitives: Choose is pretty much From/Select)
 
(4 intermediate revisions by 2 users not shown)
Line 13: Line 13:
| operating systems        = Windows, Linux, macOS, AIX, IRIX, BSD, Solaris, Tru64
| operating systems        = Windows, Linux, macOS, AIX, IRIX, BSD, Solaris, Tru64
| license                  = [[wikipedia:GNU_General_Public_License|GNU GPL]]
| license                  = [[wikipedia:GNU_General_Public_License|GNU GPL]]
| website                  = [http://www.aplusdev.org/index.html aplusdev.org]
| website                  = [https://web.archive.org/web/20211202162212/http://www.aplusdev.org/index.html aplusdev.org]
| download                = [http://www.aplusdev.org/Download/index.html aplusdev.org/Download]
| download                = [https://web.archive.org/web/20210422094323/http://www.aplusdev.org/Download/index.html aplusdev.org/Download]
| file ext                = .+
| file ext                = .+
| documentation            = [https://github.com/PlanetAPL/a-plus/tree/master/docs GitHub]
| documentation            = [https://github.com/PlanetAPL/a-plus/tree/master/docs GitHub]
Line 65: Line 65:
| <syntaxhighlight lang=apl inline>=</syntaxhighlight>  || [[Equal to]]                                  ||
| <syntaxhighlight lang=apl inline>=</syntaxhighlight>  || [[Equal to]]                                  ||
|-
|-
| <syntaxhighlight lang=apl inline>></syntaxhighlight>  || [[Greater than]]                              || [[Disclose]]
| <syntaxhighlight lang=apl inline>></syntaxhighlight>  || [[Greater than]]                              || [[Mix|Disclose]]
|-
|-
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight>  || [[Greater than or Equal to]]                  ||
| <syntaxhighlight lang=apl inline>≥</syntaxhighlight>  || [[Greater than or Equal to]]                  ||
Line 95: Line 95:
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight>  || [[Pick]]                                      || [[Raze]]
| <syntaxhighlight lang=apl inline>⊃</syntaxhighlight>  || [[Pick]]                                      || [[Raze]]
|-
|-
| <syntaxhighlight lang=apl inline>#</syntaxhighlight>  || [[Choose]]                                   || [[Count]]
| <syntaxhighlight lang=apl inline>#</syntaxhighlight>  || Choose ([[From]])                            || [[Count]]
|-
|-
| <syntaxhighlight lang=apl inline>[;]</syntaxhighlight> ||colspan=2| [[Bracket Indexing]] (varying number of arguments)
| <syntaxhighlight lang=apl inline>[;]</syntaxhighlight> ||colspan=2| [[Bracket Indexing]] (varying number of arguments)
Line 113: Line 113:
| <syntaxhighlight lang=apl inline>⍴</syntaxhighlight>  || [[Reshape]]                                  || [[Shape]]
| <syntaxhighlight lang=apl inline>⍴</syntaxhighlight>  || [[Reshape]]                                  || [[Shape]]
|-
|-
| <syntaxhighlight lang=apl inline>⊣</syntaxhighlight>  || [[Left]]                                      || Null (returns <syntaxhighlight lang=apl inline>()</syntaxhighlight>)
| <syntaxhighlight lang=apl inline>⊣</syntaxhighlight>  || [[Left]]                                      || [[Stop|Null]] (returns <syntaxhighlight lang=apl inline>()</syntaxhighlight>)
|-
|-
| <syntaxhighlight lang=apl inline>⊢</syntaxhighlight>  ||                                              || [[Right]]
| <syntaxhighlight lang=apl inline>⊢</syntaxhighlight>  ||                                              || [[Right]]
Line 140: Line 140:
== External links ==
== External links ==
* [[wikipedia:A+ (programming language)|A+]]
* [[wikipedia:A+ (programming language)|A+]]
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Leading axis languages]]
{{APL dialects}}[[Category:APL dialects]][[Category:Flat array languages]][[Category:Languages with first-class functions]][[Category:Leading axis languages]]

Latest revision as of 02:29, 5 March 2024

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 (From) 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