4,577
edits
(→Primitives: Find here is same as Index Of, and is different from ⍷) |
m (Text replacement - "</source>" to "</syntaxhighlight>") |
||
(5 intermediate revisions by 2 users not shown) | |||
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 | | 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 | ||
Line 18: | Line 18: | ||
| documentation = [https://github.com/PlanetAPL/a-plus/tree/master/docs GitHub] | | documentation = [https://github.com/PlanetAPL/a-plus/tree/master/docs GitHub] | ||
| influenced by = [[A]] | | influenced by = [[A]] | ||
| influenced = [[K]], [[J]] | | influenced = [[K]], [[J]], [[BQN]] | ||
}} | }} | ||
:''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)]].'' | :''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 [[wikipedia:Morgan Stanley|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]]. | '''A+''' is an extension of the [[A]] language. A was created in 1985 by [[Arthur Whitney]], then of [[wikipedia:Morgan Stanley|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. | 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. | ||
Line 31: | Line 31: | ||
! Glyph !! Dyadic !! Monadic | ! Glyph !! Dyadic !! Monadic | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>+</syntaxhighlight> || [[Add]] || [[Conjugate|Identity]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>-</syntaxhighlight> || [[Subtract]] || [[Negate]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>×</syntaxhighlight> || [[Multiply]] || [[Sign]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>÷</syntaxhighlight> || [[Divide]] || [[Reciprocal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>*</syntaxhighlight> || [[Power]] || [[Exponential]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍟</syntaxhighlight> || [[Log]] || [[Natural log]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>|</syntaxhighlight> || [[Residue]] || [[Absolute value]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊥</syntaxhighlight> || [[Decode]] || Pack | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊤</syntaxhighlight> || [[Encode]] || Unpack | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>?</syntaxhighlight> || [[Deal]] || [[Roll]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>○</syntaxhighlight> || [[Circle function|Circle]] (sin, cos, ...) || [[Pi times]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌹</syntaxhighlight> || [[Solve]] || [[Matrix Inverse]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌈</syntaxhighlight> || [[Max]] || [[Ceiling]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌊</syntaxhighlight> || [[Min]] || [[Floor]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline><</syntaxhighlight> || [[Less than]] || [[Enclose]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≤</syntaxhighlight> || [[Less than or Equal to]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>=</syntaxhighlight> || [[Equal to]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>></syntaxhighlight> || [[Greater than]] || [[Disclose]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≥</syntaxhighlight> || [[Greater than or Equal to]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≠</syntaxhighlight> || [[Not equal to]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍋</syntaxhighlight> || [[Bins]] || [[Grade up]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍒</syntaxhighlight> || || [[Grade down]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>≡</syntaxhighlight> || [[Match]] || [[Depth]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍳</syntaxhighlight> || [[Index Of|Find]] || [[Interval]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∊</syntaxhighlight> || [[Member]] || [[Rake]] (like [[Enlist]]) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>^</syntaxhighlight> || [[And]] || Stop | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∨</syntaxhighlight> || [[Or]] or Cast || [[Type]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍕</syntaxhighlight> || [[Format]] || [[Default Format]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍎</syntaxhighlight> || Execute in Context or Protected Execute || [[Execute]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>%</syntaxhighlight> || Value in Context || Value (of a symbol) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>←</syntaxhighlight> || [[Assignment]] or [[Selective Assignment]] || Result (returns from functions) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊃</syntaxhighlight> || [[Pick]] || [[Raze]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>#</syntaxhighlight> || [[Choose]] || [[Count]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>[;]</syntaxhighlight> ||colspan=2| [[Bracket Indexing]] (varying number of arguments) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↑</syntaxhighlight> || [[Take]] || [[Signal]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>↓</syntaxhighlight> || [[Drop]] || Print | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⌽</syntaxhighlight> || [[Rotate]] || [[Reverse]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍉</syntaxhighlight> || [[Dyadic transpose|Transpose Axes]] || [[Transpose]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>!</syntaxhighlight> || [[Restructure]] || [[Item Ravel]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⊂</syntaxhighlight> || Partition (a little like [[Split]]) || Partition Count | ||
|- | |- | ||
| < | | <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> || || [[Right]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∪</syntaxhighlight> || Combine Symbols || Separate Symbols | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>,</syntaxhighlight> || [[Catenate]] || [[Ravel]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>~</syntaxhighlight> || [[Laminate]] || [[Not]] | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>/</syntaxhighlight> || [[Replicate]] || [[Reduce]] (+ × ⌈ ⌊ ∧ ∨) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>\</syntaxhighlight> || [[Expand]] || [[Scan]] (+ × ⌈ ⌊ ∧ ∨) | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>.</syntaxhighlight> || [[Inner Product]] (+.× ⌈.+ ⌊.+) || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>∘.</syntaxhighlight> || [[Outer Product]] (+ - × ÷ | ⌈ ⌊ < ≤ = ≥ > ≠) || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>@</syntaxhighlight> || [[Rank operator|Rank]] || | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>¨</syntaxhighlight> || || [[Each]] or Apply | ||
|- | |- | ||
| < | | <syntaxhighlight lang=apl inline>⍨</syntaxhighlight> || || Bitwise | ||
|} | |} | ||
== External links == | == External links == | ||
* [[wikipedia:A+|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:Leading axis languages]] |