Shape: Difference between revisions

Jump to navigation Jump to search
1,756 bytes added ,  02:48, 17 July 2021
Miraheze>Adám Brudzewsky
No edit summary
(→‎Documentation: BQN link)
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
The shape of an array is a vector of lengths of the dimensions of the array. The shape function <code class="apl">⍴</code> returns the shape of its right argument array.
{{Built-in|Shape|⍴}} is a [[monadic function]] which returns the ''shape'' of its argument array, namely a [[vector]] of lengths of the array along each [[axis]]. The [[dyadic function]] using the same symbol is [[Reshape]] which produces an array of the shape specified by its left argument.
<pre class="apl">
 
An array's shape may be any vector of nonnegative integers with length less than or equal to the [[maximum rank]]. The length of an array's shape is the array's [[rank]], and the product of the shape is its [[bound]]. If the shape is [[Empty array|empty]] then the array is a [[scalar]].
 
An array's shape, along with the [[index origin]], determine the possible values which can be used as an [[index]] into the array. A complete index is a vector of integers with the same length as the shape. When the index origin is subtracted from the index each element must be at least 0 and less than the corresponding element of the shape. In languages with [[negative indexing]] it may be greater than or equal to the negative of the shape rather than 0.
 
== Examples ==
 
<source lang="apl">
       (⍬≡⍴)¨1 'A'                ⍝ The shape of a scalar is the empty numeric vector ⍬
       (⍬≡⍴)¨1 'A'                ⍝ The shape of a scalar is the empty numeric vector ⍬
1 1
1 1
Line 9: Line 16:
       ⍴'ABC'∘.,1 2 3 4∘.×0J1 1J2  ⍝ Two consecutive outer products result in a cuboid
       ⍴'ABC'∘.,1 2 3 4∘.×0J1 1J2  ⍝ Two consecutive outer products result in a cuboid
3 4 2
3 4 2
</pre>
</source>
{{APL programming language}}
 
== See also ==
* [[Tally]]
* [[Index generator]]
== External links ==
 
=== Lessons ===
 
* [https://chat.stackexchange.com/rooms/52405/conversation/lesson-10-apl-functions-- APL Cultivation]
* [https://www.sacrideo.us/apl-a-day-3-arrays-have-shape/ Arrays have Shape] (from [https://www.sacrideo.us/tag/apl-a-day/ APL a Day])
 
=== Documentation ===
 
* [https://help.dyalog.com/latest/index.htm#Language/Primitive%20Functions/Shape.htm Dyalog]
* [http://wiki.nars2000.org/index.php/Rho NARS2000]
* [http://microapl.com/apl_help/ch_020_020_460.htm APLX]
* [https://www.jsoftware.com/help/dictionary/d210.htm J Dictionary], [https://code.jsoftware.com/wiki/Vocabulary/dollar J NuVoc] (as <source lang=apl inline>$</source> "Shape Of")
* [https://mlochbaum.github.io/BQN/doc/shape.html BQN]
 
{{APL features}}
{{APL built-ins}}[[Category:Primitive functions]][[Category:Array characteristics]]

Navigation menu