Major cell: Difference between revisions

Jump to navigation Jump to search
54 bytes added ,  05:51, 9 June 2020
m
Text replacement - " ⊢( *[^∘])" to " ⎕←$1"
m (3 revisions imported: Migrate from miraheze)
m (Text replacement - " ⊢( *[^∘])" to " ⎕←$1")
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
In the APL [[array model]] and [[leading axis theory]], a '''major cell''' is a [[cell]] of an array which has [[rank]] one smaller than the rank of the array, or equal to it if the array is a [[scalar]]. The number of major cells in an array is its [[Tally]], and a function can be called on the major cells of an array individually by applying it with rank <source lang=apl inline>¯1</source> using the [[Rank operator]]. Functions designed to follow leading axis theory often manipulate the major cells of an array. For example, [[Reverse First]] (<source lang=apl inline>⊖</source>) is considered the primary form of [[Reverse]] in leading-axis languages because it can be interpreted as reversing the major cells of its argument; [[J]] removes last-axis Reverse entirely.
In the APL [[array model]] and [[leading axis theory]], a '''major cell''', or '''item''', is a [[cell]] of an array which has [[rank]] one smaller than the rank of the array, or equal to it if the array is a [[scalar]]. The number of major cells in an array is its [[Tally]], and a function can be called on the major cells of an array individually by applying it with rank <source lang=apl inline>¯1</source> using the [[Rank operator]]. Functions designed to follow leading axis theory often manipulate the major cells of an array. For example, [[Reverse First]] (<source lang=apl inline>⊖</source>) is considered the primary form of [[Reverse]] in leading-axis languages because it can be interpreted as reversing the major cells of its argument; [[J]] removes last-axis Reverse entirely.


== Examples ==
== Examples ==
Line 5: Line 5:
<source lang=apl inline>A</source> is an array with [[shape]] <source lang=apl inline>3 4</source>. Using [[Tally]] we see that the number of major cells in <source lang=apl inline>A</source> is the first element of the shape, <source lang=apl inline>3</source>:
<source lang=apl inline>A</source> is an array with [[shape]] <source lang=apl inline>3 4</source>. Using [[Tally]] we see that the number of major cells in <source lang=apl inline>A</source> is the first element of the shape, <source lang=apl inline>3</source>:
<source lang=apl>
<source lang=apl>
       ⊢A ← 5 3 1 ∘.∧ 2 3 4 5
       ⎕←A ← 5 3 1 ∘.∧ 2 3 4 5
10 15 20  5
10 15 20  5
  6  3 12 15
  6  3 12 15
Line 21: Line 21:
Given another array <source lang=apl inline>B</source> we can search for cells of <source lang=apl inline>B</source> which [[match]] major cells of <source lang=apl inline>B</source>. [[High-rank set functions|High-rank]] [[Index-of]] always searches for right argument cells whose rank matches the rank of a left argument major cell: if the right argument is a [[vector]] and not a [[matrix]] then it searches for the entire vector rather than its major cells (which are [[scalar]]s).
Given another array <source lang=apl inline>B</source> we can search for cells of <source lang=apl inline>B</source> which [[match]] major cells of <source lang=apl inline>B</source>. [[High-rank set functions|High-rank]] [[Index-of]] always searches for right argument cells whose rank matches the rank of a left argument major cell: if the right argument is a [[vector]] and not a [[matrix]] then it searches for the entire vector rather than its major cells (which are [[scalar]]s).
<source lang=apl>
<source lang=apl>
       ⊢B ← ↑ 4,/⍳6
       ⎕←B ← ↑ 4,/⍳6
1 2 3 4
1 2 3 4
2 3 4 5
2 3 4 5
Line 31: Line 31:
</source>
</source>


{{APL features}}
{{APL features}}[[Category:Array relationships]]

Navigation menu