120
edits
No edit summary |
|||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
'''Leading axis theory''', or the '''leading axis model''', is an approach to array language design and use that emphasizes working with arrays by manipulating their [[cell]]s and mapping functions over leading [[Axis|axes]] implicitly using [[function rank]] or explicitly using the [[Rank operator]]. It was initially developed in [[SHARP APL]] in the early 1980s and is now a major feature of [[J]] and [[Dyalog APL]], as well as languages influenced by these. The name "leading axis" comes from the [[frame]], which consists of leading axes of an array, the related concept of [[leading axis agreement]], which extends [[scalar]] [[conformability]], and the emphasis on first axis forms of functions while deprecating or discarding other [[function axis|choices of axis]]. | '''Leading axis theory''', or the '''leading axis model''', is an approach to array language design and use that emphasizes working with arrays by manipulating their [[cell]]s and mapping functions over leading [[Axis|axes]] implicitly using [[function rank]] or explicitly using the [[Rank (operator)|Rank operator]]. It was initially developed in [[SHARP APL]] in the early 1980s and is now a major feature of [[J]] and [[Dyalog APL]], as well as languages influenced by these. The name "leading axis" comes from the [[frame]], which consists of leading axes of an array, the related concept of [[leading axis agreement]], which extends [[scalar]] [[conformability]], and the emphasis on first axis forms of functions while deprecating or discarding other [[function axis|choices of axis]]. | ||
== Features == | == Features == | ||
Line 36: | Line 36: | ||
{|class=wikitable | {|class=wikitable | ||
! Functions !! [[SHARP APL]] !! [[Dyalog APL]] !!style="min-width:5em"| [[A+]] !!style="min-width:5em"| [[J]] | ! Functions !! [[SHARP APL]] !! [[Dyalog APL]] !!style="min-width:5em"| [[A+]] !!style="min-width:5em"| [[J]] !!style="min-width:5em"| [[BQN]] | ||
|- | |- | ||
| [[Take]], [[Drop]] || {{Yes|19.0}} || {{Yes|13.0}} || {{Yes}} || {{Yes}} | | [[Take]], [[Drop]] || {{Yes|19.0}} || {{Yes|13.0}} || {{Yes}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Squad Indexing|Indexing]] function | | [[Squad Indexing|Indexing]] function || {{Yes|19.0}} || {{Yes|13.0}} || {{Yes}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Bracket indexing]] || {{No}} || {{No}} || {{Yes}} ||style="text-align:center;"| N/A | | [[Bracket indexing]] || {{No}} || {{No}} || {{Yes}} ||style="text-align:center;"| N/A ||style="text-align:center;"| N/A | ||
|- | |- | ||
| [[Scalar dyadic]]s || {{Yes}} || {{No}} || {{No}} || {{Yes}} | | [[Scalar dyadic]]s || {{Yes}} || {{No}} || {{No}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Index Of]] || {{No|Incompatible}} || {{Yes|14.0}} || {{Yes}} || {{Yes}} | | [[Index Of]] || {{No|Incompatible}} || {{Yes|14.0}} || {{Yes}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Membership]] || {{No|Incompatible}} || {{No|Incompatible}} || {{Yes}} || {{Yes}} | | [[Membership]] || {{No|Incompatible}} || {{No|Incompatible}} || {{Yes}} || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Unique]] || {{Yes}} || {{Yes|17.0}} ||style="text-align:center;"| N/A || {{Yes}} | | [[Unique]] || {{Yes}} || {{Yes|17.0}} ||style="text-align:center;"| N/A || {{Yes}} || {{Yes}} | ||
|- | |- | ||
| [[Union]], [[Intersection]], [[Without]] || {{No}} || {{No}} ||style="text-align:center;"| N/A || {{Yes}} | | [[Union]], [[Intersection]], [[Without]] || {{No}} || {{No}} ||style="text-align:center;"| N/A || {{Yes}} ||style="text-align:center;"| N/A | ||
|} | |} | ||