Dyalog APL: Difference between revisions

Jump to navigation Jump to search
1,386 bytes added ,  20:57, 10 September 2022
m
Text replacement - "</source>" to "</syntaxhighlight>"
m (Text replacement - "</source>" to "</syntaxhighlight>")
Line 32: Line 32:
Work on Dyalog was begun in 1981 by APL consulting company [[Dyadic Systems]], which by that time had grown to support about 15 employees. In partnership with [[wikipedia:Zilog|Zilog]] UK, Dyadic developed an interpreter using the [[wikipedia:C (programming language)|C]] programming language for the [[wikipedia:Zilog Z8000|Zilog Z8000]]'s [[wikipedia:UNIX|UNIX]] operating system—both obscure technologies at the time. Dyadic employees [[John Scholes]] and [[Geoff Streeter]] worked full-time on the implementation, while David Crossley managed its development as a part-time role. Initially aiming to produce something like [[SHARP APL]], they eventually chose a [[Nested array model|nested]] model rather than adding [[box]]es to the [[flat array model]] like SHARP, and drew most design decisions from [[STSC]]'s experimental [[NARS]] dialect and the material available at the time regarding [[IBM]]'s plans for [[APL2]].<ref name="taylor">Stephen Taylor. [http://archive.vector.org.uk/art10013790 "How we got here"]. [[Vector journal]] Volume 23 special supplement "Dyalog at 25". 2008-09.</ref>
Work on Dyalog was begun in 1981 by APL consulting company [[Dyadic Systems]], which by that time had grown to support about 15 employees. In partnership with [[wikipedia:Zilog|Zilog]] UK, Dyadic developed an interpreter using the [[wikipedia:C (programming language)|C]] programming language for the [[wikipedia:Zilog Z8000|Zilog Z8000]]'s [[wikipedia:UNIX|UNIX]] operating system—both obscure technologies at the time. Dyadic employees [[John Scholes]] and [[Geoff Streeter]] worked full-time on the implementation, while David Crossley managed its development as a part-time role. Initially aiming to produce something like [[SHARP APL]], they eventually chose a [[Nested array model|nested]] model rather than adding [[box]]es to the [[flat array model]] like SHARP, and drew most design decisions from [[STSC]]'s experimental [[NARS]] dialect and the material available at the time regarding [[IBM]]'s plans for [[APL2]].<ref name="taylor">Stephen Taylor. [http://archive.vector.org.uk/art10013790 "How we got here"]. [[Vector journal]] Volume 23 special supplement "Dyalog at 25". 2008-09.</ref>


Released at [[APL83]], Dyalog sold very few copies due to the lack of interest in either Unix or the nested array model. Subsequent sales were also limited, with only a single licence sold through Zilog partly due to the Z8000's limited popularity. Supported by Dyadic's APL consulting and later by sales of Unix hardware, Scholes and Streeter continued work on Dyalog by porting it to a wide variety of Unix systems in response to requests from users; in 1995, Scholes was awarded the [[Iverson Award]] jointly with [[Peter Donnelly]] for his work on the Dyalog interpreter. Although it continued to run significant losses every year, Dyalog slowly acquired users during the 1980s, including current client [[wikipedia:SimCorp|SimCorp]]. In 1991, Dyadic hired [[John Daintree]] to begin work on the <source lang=apl inline>⎕WC</source> graphical user interface for [[wikipedia:Microsoft Windows|Microsoft Windows]]; Dyalog for Windows debuted at [[APL92]] and quickly become Dyalog's main platform.<ref name="taylor"/>
Released at [[APL83]], Dyalog sold very few copies due to the lack of interest in either Unix or the nested array model. Subsequent sales were also limited, with only a single licence sold through Zilog partly due to the Z8000's limited popularity. Supported by Dyadic's APL consulting and later by sales of Unix hardware, Scholes and Streeter continued work on Dyalog by porting it to a wide variety of Unix systems in response to requests from users; in 1995, Scholes was awarded the [[Iverson Award]] jointly with [[Peter Donnelly]] for his work on the Dyalog interpreter. Although it continued to run significant losses every year, Dyalog slowly acquired users during the 1980s, including current client [[wikipedia:SimCorp|SimCorp]]. In 1991, Dyadic hired [[John Daintree]] to begin work on the <source lang=apl inline>⎕WC</syntaxhighlight> graphical user interface for [[wikipedia:Microsoft Windows|Microsoft Windows]]; Dyalog for Windows debuted at [[APL92]] and quickly become Dyalog's main platform.<ref name="taylor"/>


In 1996, John Scholes introduced a new form of functional definition to Dyalog based on his studies of the functional programming language [[wikipedia:Scheme (programming language)|Scheme]], which he called [[dfn]]s, for "direct functions". Another major addition to the language began in 2000, when John Daintree was invited to participate in the design of Microsoft's [[.NET]]. Based on this work, and the [[namespace]]s which he had added to the language in 1994 to deliver a Windows GUI API and an interface to COM/OLE, Daintree developed an [[Object-oriented programming|object]] model for Dyalog, based on concepts from [[wikipedia:C_Sharp_(programming_language)|C#]] and [[wikipedia:Visual Basic|Visual Basic]].
In 1996, John Scholes introduced a new form of functional definition to Dyalog based on his studies of the functional programming language [[wikipedia:Scheme (programming language)|Scheme]], which he called [[dfn]]s, for "direct functions". Another major addition to the language began in 2000, when John Daintree was invited to participate in the design of Microsoft's [[.NET]]. Based on this work, and the [[namespace]]s which he had added to the language in 1994 to deliver a Windows GUI API and an interface to COM/OLE, Daintree developed an [[Object-oriented programming|object]] model for Dyalog, based on concepts from [[wikipedia:C_Sharp_(programming_language)|C#]] and [[wikipedia:Visual Basic|Visual Basic]].
Line 83: Line 83:
|                            3.0    || 1985 ||          || (More platforms) Rectangular display of arrays
|                            3.0    || 1985 ||          || (More platforms) Rectangular display of arrays
|-
|-
|                            4.0    || 1986 || October  || User-defined operators, [[Assignment]] for functions (including [[derived function]]s), <source lang=apl inline>⎕MONITOR</source>
|                            4.0    || 1986 || October  || User-defined operators, [[Assignment]] for functions (including [[derived function]]s), <source lang=apl inline>⎕MONITOR</syntaxhighlight>
|-
|-
|                            5.0    || 1987 || April    || Nested array editor
|                            5.0    || 1987 || April    || Nested array editor
|-
|-
|                            5.1    || 1988 || April    || (first version for DOS) User-defined input/output tables, <source lang=apl inline>⎕SM</source> and <source lang=apl inline>⎕SR</source>, windowed editor/tracer, interface to GSS/CGI
|                            5.1    || 1988 || April    || (first version for DOS) User-defined input/output tables, <source lang=apl inline>⎕SM</syntaxhighlight> and <source lang=apl inline>⎕SR</syntaxhighlight>, windowed editor/tracer, interface to GSS/CGI
|-
|-
|                            5.2    || 1990 || January  || Naked trace
|                            5.2    || 1990 || January  || Naked trace
Line 93: Line 93:
|                            6.0    || 1990 || April    || GUI IDE
|                            6.0    || 1990 || April    || GUI IDE
|-
|-
|                            6.1    || 1990 || October  || <source lang=apl inline>⎕ED</source>
|                            6.1    || 1990 || October  || <source lang=apl inline>⎕ED</syntaxhighlight>
|-
|-
|                            6.2.1  || 1992 || July      || (first version for Windows) <source lang=apl inline>⎕WC</source>, <source lang=apl inline>⎕DQ</source>, etc.
|                            6.2.1  || 1992 || July      || (first version for Windows) <source lang=apl inline>⎕WC</syntaxhighlight>, <source lang=apl inline>⎕DQ</syntaxhighlight>, etc.
|-
|-
|                            6.3.1  || 1993 || April    || <source lang=apl inline>⎕NA</source>, graphical, clipboard and printer objects
|                            6.3.1  || 1993 || April    || <source lang=apl inline>⎕NA</syntaxhighlight>, graphical, clipboard and printer objects
|-
|-
|                            7.0.1  || 1994 || August    || Namespaces, additional GUI objects
|                            7.0.1  || 1994 || August    || Namespaces, additional GUI objects
|-
|-
|                            7.1    || 1995 || May      || <source lang=apl inline>⎕CS</source>, GUI objects as namespaces, greater [[APL2]] compatibility
|                            7.1    || 1995 || May      || <source lang=apl inline>⎕CS</syntaxhighlight>, GUI objects as namespaces, greater [[APL2]] compatibility
|-
|-
|                            8.0    || 1996 || May      || [[Control structure|Keywords]] (<source lang=apl inline>:If</source>/<source lang=apl inline>:Else</source>, <source lang=apl inline>:Repeat</source>/<source lang=apl inline>:Until</source>, <source lang=apl inline>:Trap</source>, and so on), <source lang=apl inline>⎕PATH</source>, additional GUI objects, OLE
|                            8.0    || 1996 || May      || [[Control structure|Keywords]] (<source lang=apl inline>:If</syntaxhighlight>/<source lang=apl inline>:Else</syntaxhighlight>, <source lang=apl inline>:Repeat</syntaxhighlight>/<source lang=apl inline>:Until</syntaxhighlight>, <source lang=apl inline>:Trap</syntaxhighlight>, and so on), <source lang=apl inline>⎕PATH</syntaxhighlight>, additional GUI objects, OLE
|-
|-
|                            8.1    || 1997 || March    || [[dfn]]s with [[lexical scope]], syntax colouring, TCPSocket object, OLE client/server, automatic file tie numbers
|                            8.1    || 1997 || March    || [[dfn]]s with [[lexical scope]], syntax colouring, TCPSocket object, OLE client/server, automatic file tie numbers
|-
|-
|                            8.2    || 1999 || January  || [[Windowed Reduction]] and [[scalar function]]s with [[Function axis|axis]] (from [[APL2]]), Threading with [[Spawn]] (<source lang=apl inline>&</source>), ActiveX, <source lang=apl inline>:With</source>, additional GUI objects
|                            8.2    || 1999 || January  || [[Windowed Reduction]] and [[scalar function]]s with [[Function axis|axis]] (from [[APL2]]), Threading with [[Spawn]] (<source lang=apl inline>&</syntaxhighlight>), ActiveX, <source lang=apl inline>:With</syntaxhighlight>, additional GUI objects
|-
|-
|                            9.0    || 2000 || September || [[Namespace]] [[reference]]s (instead of [[string]] names) and dot syntax, context-sensitive help (F1), aditional GUI objects with animation
|                            9.0    || 2000 || September || [[Namespace]] [[reference]]s (instead of [[string]] names) and dot syntax, context-sensitive help (F1), aditional GUI objects with animation
Line 117: Line 117:
|                            9.5    || 2002 || September ||
|                            9.5    || 2002 || September ||
|-
|-
| [[Dyalog_APL_versions#10.0|10.0]]  || 2003 || March    || <source lang=apl inline>⎕NULL</source>, <source lang=apl inline>⎕MAP</source>, [[idiom recognition]] (mapped files), retained hash tables, [[.NET]] support built-in, run-time workspace as .exe, auto-completion, mapped  
| [[Dyalog_APL_versions#10.0|10.0]]  || 2003 || March    || <source lang=apl inline>⎕NULL</syntaxhighlight>, <source lang=apl inline>⎕MAP</syntaxhighlight>, [[idiom recognition]] (mapped files), retained hash tables, [[.NET]] support built-in, run-time workspace as .exe, auto-completion, mapped  
|-
|-
| [[Dyalog_APL_versions#10.1|10.1]]  || 2004 || July      || Multiple arguments in [[tradfn]] headers, thread tokens, 64-bit component files, value tips
| [[Dyalog_APL_versions#10.1|10.1]]  || 2004 || July      || Multiple arguments in [[tradfn]] headers, thread tokens, 64-bit component files, value tips
|-
|-
| [[Dyalog_APL_versions#11.0|11.0]]  || 2006 || October  || [[Object-oriented programming]] (classes, objects, interfaces) modelled after [[wikipedia:C-Sharp_|C#]], [[Squad indexing|Index]] (<source lang=apl inline>⌷</source>), [[Power operator]] (<source lang=apl inline>⍣</source>), [[GCD]] (<source lang=apl inline>∨</source>), [[LCM]] (<source lang=apl inline>∧</source>)
| [[Dyalog_APL_versions#11.0|11.0]]  || 2006 || October  || [[Object-oriented programming]] (classes, objects, interfaces) modelled after [[wikipedia:C-Sharp_|C#]], [[Squad indexing|Index]] (<source lang=apl inline>⌷</syntaxhighlight>), [[Power operator]] (<source lang=apl inline>⍣</syntaxhighlight>), [[GCD]] (<source lang=apl inline>∨</syntaxhighlight>), [[LCM]] (<source lang=apl inline>∧</syntaxhighlight>)
|-
|-
| [[Dyalog_APL_versions#12.0|12.0]]  || 2008 || August    || [[Unicode]] support (<source lang=apl inline>⎕AVU</source>, <source lang=apl inline>⎕UCS</source>), <source lang=apl inline>⎕FCOPY</source>, <source lang=apl inline>⎕FPROPS</source>
| [[Dyalog_APL_versions#12.0|12.0]]  || 2008 || August    || [[Unicode]] support (<source lang=apl inline>⎕AVU</syntaxhighlight>, <source lang=apl inline>⎕UCS</syntaxhighlight>), <source lang=apl inline>⎕FCOPY</syntaxhighlight>, <source lang=apl inline>⎕FPROPS</syntaxhighlight>
|-
|-
| [[Dyalog_APL_versions#12.1|12.1]]  || 2009 || November  || [[I-beam]] (<source lang=apl inline>⌶</source>), [[Table]] (<source lang=apl inline>⍪</source>), <source lang=apl inline>⎕XML</source>, <source lang=apl inline>⎕FCHK</source>, [[User command]]s
| [[Dyalog_APL_versions#12.1|12.1]]  || 2009 || November  || [[I-beam]] (<source lang=apl inline>⌶</syntaxhighlight>), [[Table]] (<source lang=apl inline>⍪</syntaxhighlight>), <source lang=apl inline>⎕XML</syntaxhighlight>, <source lang=apl inline>⎕FCHK</syntaxhighlight>, [[User command]]s
|-
|-
| [[Dyalog_APL_versions#13.0|13.0]]  || 2011 || April    || [[Left]] (<source lang=apl inline>⊣</source>), [[Right]] (<source lang=apl inline>⊢</source>), [[Variant]] (<source lang=apl inline>⍠</source>), <source lang=apl inline>⎕OPT</source>, <source lang=apl inline>⎕R</source>, <source lang=apl inline>⎕S</source>, <source lang=apl inline>⎕PROFILE</source>, <source lang=apl inline>⎕RSI</source>, [[complex number]] and [[decimal float]] support, short arguments for [[Take]], [[Drop]], and [[Squad indexing|Index]] (<source lang=apl inline>↑</source>, <source lang=apl inline>↓</source>, <source lang=apl inline>⌷</source>)
| [[Dyalog_APL_versions#13.0|13.0]]  || 2011 || April    || [[Left]] (<source lang=apl inline>⊣</syntaxhighlight>), [[Right]] (<source lang=apl inline>⊢</syntaxhighlight>), [[Variant]] (<source lang=apl inline>⍠</syntaxhighlight>), <source lang=apl inline>⎕OPT</syntaxhighlight>, <source lang=apl inline>⎕R</syntaxhighlight>, <source lang=apl inline>⎕S</syntaxhighlight>, <source lang=apl inline>⎕PROFILE</syntaxhighlight>, <source lang=apl inline>⎕RSI</syntaxhighlight>, [[complex number]] and [[decimal float]] support, short arguments for [[Take]], [[Drop]], and [[Squad indexing|Index]] (<source lang=apl inline>↑</syntaxhighlight>, <source lang=apl inline>↓</syntaxhighlight>, <source lang=apl inline>⌷</syntaxhighlight>)
|-
|-
| [[Dyalog_APL_versions#13.1|13.1]]  || 2012 || April    || <source lang=apl inline>⎕DMX</source>, <source lang=apl inline>⎕FHIST</source>
| [[Dyalog_APL_versions#13.1|13.1]]  || 2012 || April    || <source lang=apl inline>⎕DMX</syntaxhighlight>, <source lang=apl inline>⎕FHIST</syntaxhighlight>
|-
|-
| [[Dyalog_APL_versions#13.2|13.2]]  || 2013 || January  || Array [[Editor]]
| [[Dyalog_APL_versions#13.2|13.2]]  || 2013 || January  || Array [[Editor]]
|-
|-
| [[Dyalog_APL_versions#14.0|14.0]]  || 2014 || June      || [[Train]]s, [[Tally]] (<source lang=apl inline>≢</source>), [[Key]] (<source lang=apl inline>⌸</source>), [[Rank operator]] (<source lang=apl inline>⍤</source>), [[High-rank set functions|high-rank]] [[Index Of]], multi-threading with [[future]]s and [[isolate]]s
| [[Dyalog_APL_versions#14.0|14.0]]  || 2014 || June      || [[Train]]s, [[Tally]] (<source lang=apl inline>≢</syntaxhighlight>), [[Key]] (<source lang=apl inline>⌸</syntaxhighlight>), [[Rank operator]] (<source lang=apl inline>⍤</syntaxhighlight>), [[High-rank set functions|high-rank]] [[Index Of]], multi-threading with [[future]]s and [[isolate]]s
|-
|-
| [[Dyalog_APL_versions#14.1|14.1]]  || 2015 || June      || <source lang=apl inline>:Disposable</source> [[.NET]] objects and resources, gesture support, many new I-beams
| [[Dyalog_APL_versions#14.1|14.1]]  || 2015 || June      || <source lang=apl inline>:Disposable</syntaxhighlight> [[.NET]] objects and resources, gesture support, many new I-beams
|-
|-
| [[Dyalog_APL_versions#15.0|15.0]]  || 2016 || June      || <source lang=apl inline>⎕MKDIR</source>, <source lang=apl inline>⎕NDELETE</source>, <source lang=apl inline>⎕NEXISTS</source>, <source lang=apl inline>⎕NGET</source>, <source lang=apl inline>⎕NINFO</source>, <source lang=apl inline>⎕NPARTS</source>, <source lang=apl inline>⎕NPUT</source>
| [[Dyalog_APL_versions#15.0|15.0]]  || 2016 || June      || <source lang=apl inline>⎕MKDIR</syntaxhighlight>, <source lang=apl inline>⎕NDELETE</syntaxhighlight>, <source lang=apl inline>⎕NEXISTS</syntaxhighlight>, <source lang=apl inline>⎕NGET</syntaxhighlight>, <source lang=apl inline>⎕NINFO</syntaxhighlight>, <source lang=apl inline>⎕NPARTS</syntaxhighlight>, <source lang=apl inline>⎕NPUT</syntaxhighlight>
|-
|-
| [[Dyalog_APL_versions#16.0|16.0]]  || 2017 || June      || [[At]] (<source lang=apl inline>@</source>), [[Interval Index]] (<source lang=apl inline>⍸</source>), [[Where]] (<source lang=apl inline>⍸</source>), [[Nest]] (<source lang=apl inline>⊆</source>), [[Partition]] (<source lang=apl inline>⊆</source>), [[Stencil]] (<source lang=apl inline>⌺</source>), <source lang=apl inline>⎕JSON</source>, <source lang=apl inline>⎕CSV</source>
| [[Dyalog_APL_versions#16.0|16.0]]  || 2017 || June      || [[At]] (<source lang=apl inline>@</syntaxhighlight>), [[Interval Index]] (<source lang=apl inline>⍸</syntaxhighlight>), [[Where]] (<source lang=apl inline>⍸</syntaxhighlight>), [[Nest]] (<source lang=apl inline>⊆</syntaxhighlight>), [[Partition]] (<source lang=apl inline>⊆</syntaxhighlight>), [[Stencil]] (<source lang=apl inline>⌺</syntaxhighlight>), <source lang=apl inline>⎕JSON</syntaxhighlight>, <source lang=apl inline>⎕CSV</syntaxhighlight>
|-
|-
| [[Dyalog_APL_versions#17.0|17.0]]  || 2018 || July      || <source lang=apl inline>⎕NCOPY</source>, <source lang=apl inline>⎕NMOVE</source>, [[total array ordering]], high-rank [[Unique]]
| [[Dyalog_APL_versions#17.0|17.0]]  || 2018 || July      || <source lang=apl inline>⎕NCOPY</syntaxhighlight>, <source lang=apl inline>⎕NMOVE</syntaxhighlight>, [[total array ordering]], high-rank [[Unique]]
|-
|-
| [[Dyalog_APL_versions#17.1|17.1]]  || 2019 || October  || Duplicates in [[Interval Index]] (<source lang=apl inline>⍸</source>) look-up array
| [[Dyalog_APL_versions#17.1|17.1]]  || 2019 || October  || Duplicates in [[Interval Index]] (<source lang=apl inline>⍸</syntaxhighlight>) look-up array
|-
|-
| [[Dyalog_APL_versions#18.0|18.0]]  || 2020 || June      || [[Atop]] (<source lang=apl inline>⍤</source>), [[Over]] (<source lang=apl inline>⍥</source>), [[Constant]] (<source lang=apl inline>⍨</source>), [[Unique Mask]] (<source lang=apl inline>≠</source>), duplicates from [[Where]] (<source lang=apl inline>⍸</source>), empty partitions from [[Partitioned Enclose]] (<source lang=apl inline>⊂</source>), date-time conversion (<source lang=apl inline>⎕DT</source>), case folding/mapping (<source lang=apl inline>⎕C</source>), launching with text source file, [[.NET]] Core support
| [[Dyalog_APL_versions#18.0|18.0]]  || 2020 || June      || [[Atop]] (<source lang=apl inline>⍤</syntaxhighlight>), [[Over]] (<source lang=apl inline>⍥</syntaxhighlight>), [[Constant]] (<source lang=apl inline>⍨</syntaxhighlight>), [[Unique Mask]] (<source lang=apl inline>≠</syntaxhighlight>), duplicates from [[Where]] (<source lang=apl inline>⍸</syntaxhighlight>), empty partitions from [[Partitioned Enclose]] (<source lang=apl inline>⊂</syntaxhighlight>), date-time conversion (<source lang=apl inline>⎕DT</syntaxhighlight>), case folding/mapping (<source lang=apl inline>⎕C</syntaxhighlight>), launching with text source file, [[.NET]] Core support
|-
|-
| [[Dyalog_APL_versions#18.2|18.2]]  || 2022 || March    || <source lang=apl inline>⎕ATX</source>, shell scripting
| [[Dyalog_APL_versions#18.2|18.2]]  || 2022 || March    || <source lang=apl inline>⎕ATX</syntaxhighlight>, shell scripting
|}
|}


Line 157: Line 157:
! Glyph                              !! Monadic              !! Dyadic
! Glyph                              !! Monadic              !! Dyadic
|-
|-
| <source lang=apl inline>+</source> || [[Conjugate]]        || [[Plus]]
| <source lang=apl inline>+</syntaxhighlight> || [[Conjugate]]        || [[Plus]]
|-
|-
| <source lang=apl inline>-</source> || [[Negate]]            || [[Minus]]
| <source lang=apl inline>-</syntaxhighlight> || [[Negate]]            || [[Minus]]
|-
|-
| <source lang=apl inline>×</source> || [[Direction]]        || [[Times]]
| <source lang=apl inline>×</syntaxhighlight> || [[Direction]]        || [[Times]]
|-
|-
| <source lang=apl inline>÷</source> || [[Reciprocal]]        || [[Divide]]
| <source lang=apl inline>÷</syntaxhighlight> || [[Reciprocal]]        || [[Divide]]
|-
|-
| <source lang=apl inline>|</source> || [[Magnitude]]        || [[Residue]]
| <source lang=apl inline>|</syntaxhighlight> || [[Magnitude]]        || [[Residue]]
|-
|-
| <source lang=apl inline>⌊</source> || [[Floor]]            || [[Minimum]]
| <source lang=apl inline>⌊</syntaxhighlight> || [[Floor]]            || [[Minimum]]
|-
|-
| <source lang=apl inline>⌈</source> || [[Ceiling]]          || [[Maximum]]
| <source lang=apl inline>⌈</syntaxhighlight> || [[Ceiling]]          || [[Maximum]]
|-
|-
| <source lang=apl inline>*</source> || [[Exponential]]      || [[Power function|Power]]
| <source lang=apl inline>*</syntaxhighlight> || [[Exponential]]      || [[Power function|Power]]
|-
|-
| <source lang=apl inline>⍟</source> || [[Natural Logarithm]] || [[Logarithm]]
| <source lang=apl inline>⍟</syntaxhighlight> || [[Natural Logarithm]] || [[Logarithm]]
|-
|-
| <source lang=apl inline>!</source> || [[Factorial]]        || [[Binomial]]
| <source lang=apl inline>!</syntaxhighlight> || [[Factorial]]        || [[Binomial]]
|-
|-
| <source lang=apl inline>○</source> || [[Pi Times]]          || [[Circle function|Circular]]
| <source lang=apl inline>○</syntaxhighlight> || [[Pi Times]]          || [[Circle function|Circular]]
|-
|-
| <source lang=apl inline>~</source> || [[Not]]              || [[Without]]
| <source lang=apl inline>~</syntaxhighlight> || [[Not]]              || [[Without]]
|-
|-
| <source lang=apl inline>?</source> || [[Roll]]              || [[Deal]]
| <source lang=apl inline>?</syntaxhighlight> || [[Roll]]              || [[Deal]]
|-
|-
| <source lang=apl inline>∧</source> ||                      || [[And]]
| <source lang=apl inline>∧</syntaxhighlight> ||                      || [[And]]
|-
|-
| <source lang=apl inline>∨</source> ||                      || [[Or]]
| <source lang=apl inline>∨</syntaxhighlight> ||                      || [[Or]]
|-
|-
| <source lang=apl inline>⍲</source> ||                      || [[Nand]]
| <source lang=apl inline>⍲</syntaxhighlight> ||                      || [[Nand]]
|-
|-
| <source lang=apl inline>⍱</source> ||                      || [[Nor]]
| <source lang=apl inline>⍱</syntaxhighlight> ||                      || [[Nor]]
|-
|-
| <source lang=apl inline><</source> ||                      || [[Less]]
| <source lang=apl inline><</syntaxhighlight> ||                      || [[Less]]
|-
|-
| <source lang=apl inline>≤</source> ||                      || [[Less Or Equal]]
| <source lang=apl inline>≤</syntaxhighlight> ||                      || [[Less Or Equal]]
|-
|-
| <source lang=apl inline>=</source> ||                      || [[Equal]]
| <source lang=apl inline>=</syntaxhighlight> ||                      || [[Equal]]
|-
|-
| <source lang=apl inline>≥</source> ||                      || [[Greater Or Equal]]
| <source lang=apl inline>≥</syntaxhighlight> ||                      || [[Greater Or Equal]]
|-
|-
| <source lang=apl inline>></source> ||                      || [[Greater]]
| <source lang=apl inline>></syntaxhighlight> ||                      || [[Greater]]
|-
|-
| <source lang=apl inline>≠</source> || [[Unique Mask]]      || [[Not Equal]]
| <source lang=apl inline>≠</syntaxhighlight> || [[Unique Mask]]      || [[Not Equal]]
|-
|-
| <source lang=apl inline>⍴</source> || [[Shape]]            || [[Reshape]]
| <source lang=apl inline>⍴</syntaxhighlight> || [[Shape]]            || [[Reshape]]
|-
|-
| <source lang=apl inline>,</source> || [[Ravel]]            || [[Catenate]]
| <source lang=apl inline>,</syntaxhighlight> || [[Ravel]]            || [[Catenate]]
|-
|-
| <source lang=apl inline>⍪</source> || [[Table]]            || [[Catenate First]]
| <source lang=apl inline>⍪</syntaxhighlight> || [[Table]]            || [[Catenate First]]
|-
|-
| <source lang=apl inline>⌽</source> || [[Reverse]]          || [[Rotate]]
| <source lang=apl inline>⌽</syntaxhighlight> || [[Reverse]]          || [[Rotate]]
|-
|-
| <source lang=apl inline>⊖</source> || [[Reverse First]]    || [[Rotate First]]
| <source lang=apl inline>⊖</syntaxhighlight> || [[Reverse First]]    || [[Rotate First]]
|-
|-
| <source lang=apl inline>⍉</source> ||colspan=2| [[Transpose]]
| <source lang=apl inline>⍉</syntaxhighlight> ||colspan=2| [[Transpose]]
|-
|-
| <source lang=apl inline>↑</source> || [[Mix]]/[[First]]    || [[Take]]
| <source lang=apl inline>↑</syntaxhighlight> || [[Mix]]/[[First]]    || [[Take]]
|-
|-
| <source lang=apl inline>↓</source> || [[Split]]            || [[Drop]]
| <source lang=apl inline>↓</syntaxhighlight> || [[Split]]            || [[Drop]]
|-
|-
| <source lang=apl inline>⊂</source> || [[Enclose]]          || [[Partitioned Enclose]]
| <source lang=apl inline>⊂</syntaxhighlight> || [[Enclose]]          || [[Partitioned Enclose]]
|-
|-
| <source lang=apl inline>⊆</source> || [[Nest]]              || [[Partition]]
| <source lang=apl inline>⊆</syntaxhighlight> || [[Nest]]              || [[Partition]]
|-
|-
| <source lang=apl inline>∊</source> || [[Enlist]]/[[Type]]  || [[Membership]]
| <source lang=apl inline>∊</syntaxhighlight> || [[Enlist]]/[[Type]]  || [[Membership]]
|-
|-
| <source lang=apl inline>⊃</source> || [[First]]/[[Mix]]    || [[Pick]]
| <source lang=apl inline>⊃</syntaxhighlight> || [[First]]/[[Mix]]    || [[Pick]]
|-
|-
| <source lang=apl inline>/</source> ||                      || [[Replicate]]
| <source lang=apl inline>/</syntaxhighlight> ||                      || [[Replicate]]
|-
|-
| <source lang=apl inline>⌿</source> ||                      || [[Replicate First]]
| <source lang=apl inline>⌿</syntaxhighlight> ||                      || [[Replicate First]]
|-
|-
| <source lang=apl inline>\</source> ||                      || [[Expand]]
| <source lang=apl inline>\</syntaxhighlight> ||                      || [[Expand]]
|-
|-
| <source lang=apl inline>⍀</source> ||                      || [[Expand First]]
| <source lang=apl inline>⍀</syntaxhighlight> ||                      || [[Expand First]]
|-
|-
| <source lang=apl inline>∩</source> ||                      || [[Intersection]]
| <source lang=apl inline>∩</syntaxhighlight> ||                      || [[Intersection]]
|-
|-
| <source lang=apl inline>∪</source> || [[Unique]]            || [[Union]]
| <source lang=apl inline>∪</syntaxhighlight> || [[Unique]]            || [[Union]]
|-
|-
| <source lang=apl inline>⊣</source> || [[Identity|Same]]    || [[Left Identity|Left]]
| <source lang=apl inline>⊣</syntaxhighlight> || [[Identity|Same]]    || [[Left Identity|Left]]
|-
|-
| <source lang=apl inline>⊢</source> || [[Identity|Same]]    || [[Right Identity|Right]]
| <source lang=apl inline>⊢</syntaxhighlight> || [[Identity|Same]]    || [[Right Identity|Right]]
|-
|-
| <source lang=apl inline>⍳</source> || [[Index Generator]]  || [[Index Of]]
| <source lang=apl inline>⍳</syntaxhighlight> || [[Index Generator]]  || [[Index Of]]
|-
|-
| <source lang=apl inline>⍸</source> || [[Where]]            || [[Interval Index]]
| <source lang=apl inline>⍸</syntaxhighlight> || [[Where]]            || [[Interval Index]]
|-
|-
| <source lang=apl inline>⍒</source> ||colspan=2| [[Grade Down]]
| <source lang=apl inline>⍒</syntaxhighlight> ||colspan=2| [[Grade Down]]
|-
|-
| <source lang=apl inline>⍋</source> ||colspan=2| [[Grade Up]]
| <source lang=apl inline>⍋</syntaxhighlight> ||colspan=2| [[Grade Up]]
|-
|-
| <source lang=apl inline>⍷</source> ||                      || [[Find]]
| <source lang=apl inline>⍷</syntaxhighlight> ||                      || [[Find]]
|-
|-
| <source lang=apl inline>≡</source> || [[Depth]]            || [[Match]]
| <source lang=apl inline>≡</syntaxhighlight> || [[Depth]]            || [[Match]]
|-
|-
| <source lang=apl inline>≢</source> || [[Tally]]            || [[Not Match]]
| <source lang=apl inline>≢</syntaxhighlight> || [[Tally]]            || [[Not Match]]
|-
|-
| <source lang=apl inline>⍎</source> ||colspan=2| [[Execute]]
| <source lang=apl inline>⍎</syntaxhighlight> ||colspan=2| [[Execute]]
|-
|-
| <source lang=apl inline>⍕</source> ||colspan=2| [[Format]]
| <source lang=apl inline>⍕</syntaxhighlight> ||colspan=2| [[Format]]
|-
|-
| <source lang=apl inline>⊥</source> ||                      || [[Base]]
| <source lang=apl inline>⊥</syntaxhighlight> ||                      || [[Base]]
|-
|-
| <source lang=apl inline>⊤</source> ||                      || [[Represent]]
| <source lang=apl inline>⊤</syntaxhighlight> ||                      || [[Represent]]
|-
|-
| <source lang=apl inline>⌹</source> || [[Matrix Inverse]]    || [[Matrix Divide]]
| <source lang=apl inline>⌹</syntaxhighlight> || [[Matrix Inverse]]    || [[Matrix Divide]]
|-
|-
| <source lang=apl inline>⌷</source> || [[Materialise]]      || [[Index (function)|Index]]
| <source lang=apl inline>⌷</syntaxhighlight> || [[Materialise]]      || [[Index (function)|Index]]
|}
|}


Line 275: Line 275:
! Syntax                                !! Monadic call        !! Dyadic call
! Syntax                                !! Monadic call        !! Dyadic call
|-
|-
| <source lang=apl inline>f/</source>  || [[Reduction]]      || [[Windowed Reduction]]
| <source lang=apl inline>f/</syntaxhighlight>  || [[Reduction]]      || [[Windowed Reduction]]
|-
|-
| <source lang=apl inline>f⌿</source>  || [[Reduction First]] || [[Windowed Reduction First]]
| <source lang=apl inline>f⌿</syntaxhighlight>  || [[Reduction First]] || [[Windowed Reduction First]]
|-
|-
| <source lang=apl inline>f\</source>  || [[Scan]]            ||
| <source lang=apl inline>f\</syntaxhighlight>  || [[Scan]]            ||
|-
|-
| <source lang=apl inline>f⍀</source>  || [[Scan First]]      ||
| <source lang=apl inline>f⍀</syntaxhighlight>  || [[Scan First]]      ||
|-
|-
| <source lang=apl inline>f¨</source>  ||colspan=2| [[Each]]
| <source lang=apl inline>f¨</syntaxhighlight>  ||colspan=2| [[Each]]
|-
|-
| <source lang=apl inline>f⍨</source>  ||colspan=2| [[Commute]]
| <source lang=apl inline>f⍨</syntaxhighlight>  ||colspan=2| [[Commute]]
|-
|-
| <source lang=apl inline>A⍨</source>  ||colspan=2| [[Constant]]
| <source lang=apl inline>A⍨</syntaxhighlight>  ||colspan=2| [[Constant]]
|-
|-
| <source lang=apl inline>f⍣v</source>  ||colspan=2| [[Power (operator)|Power]]
| <source lang=apl inline>f⍣v</syntaxhighlight>  ||colspan=2| [[Power (operator)|Power]]
|-
|-
| <source lang=apl inline>f.g</source>  ||                    || [[Inner Product]]
| <source lang=apl inline>f.g</syntaxhighlight>  ||                    || [[Inner Product]]
|-
|-
| <source lang=apl inline>∘.f</source>  ||                    || [[Outer Product]]
| <source lang=apl inline>∘.f</syntaxhighlight>  ||                    || [[Outer Product]]
|-
|-
| <source lang=apl inline>A∘g</source>  ||rowspan=2| [[Bind]]  ||
| <source lang=apl inline>A∘g</syntaxhighlight>  ||rowspan=2| [[Bind]]  ||
|-
|-
| <source lang=apl inline>f∘B</source>  ||
| <source lang=apl inline>f∘B</syntaxhighlight>  ||
|-
|-
| <source lang=apl inline>f∘g</source>  ||colspan=2| [[Beside]]
| <source lang=apl inline>f∘g</syntaxhighlight>  ||colspan=2| [[Beside]]
|-
|-
| <source lang=apl inline>f⍤B</source>  ||colspan=2| [[Rank operator|Rank]]
| <source lang=apl inline>f⍤B</syntaxhighlight>  ||colspan=2| [[Rank operator|Rank]]
|-
|-
| <source lang=apl inline>f⍤g</source>  ||colspan=2| [[Atop]]
| <source lang=apl inline>f⍤g</syntaxhighlight>  ||colspan=2| [[Atop]]
|-
|-
| <source lang=apl inline>f⍥g</source>  ||colspan=2| [[Over]]
| <source lang=apl inline>f⍥g</syntaxhighlight>  ||colspan=2| [[Over]]
|-
|-
| <source lang=apl inline>f@v</source>  ||colspan=2| [[At]]
| <source lang=apl inline>f@v</syntaxhighlight>  ||colspan=2| [[At]]
|-
|-
| <source lang=apl inline>f⍠B</source>  ||colspan=2| [[Variant]]
| <source lang=apl inline>f⍠B</syntaxhighlight>  ||colspan=2| [[Variant]]
|-
|-
| <source lang=apl inline>f⌸</source>  ||colspan=2| [[Key]]
| <source lang=apl inline>f⌸</syntaxhighlight>  ||colspan=2| [[Key]]
|-
|-
| <source lang=apl inline>f⌺B</source>  || [[Stencil]]        ||
| <source lang=apl inline>f⌺B</syntaxhighlight>  || [[Stencil]]        ||
|-
|-
| <source lang=apl inline>A⌶</source>  ||colspan=2| [[I-beam]]
| <source lang=apl inline>A⌶</syntaxhighlight>  ||colspan=2| [[I-beam]]
|-
|-
| <source lang=apl inline>f&</source>  ||colspan=2| [[Spawn]]
| <source lang=apl inline>f&</syntaxhighlight>  ||colspan=2| [[Spawn]]
|-
|-
| <source lang=apl inline>f[B]</source> ||colspan=2| [[Function axis|Axis]]
| <source lang=apl inline>f[B]</syntaxhighlight> ||colspan=2| [[Function axis|Axis]]
|}
|}


Navigation menu