Difference between revisions of "Shape"

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
Miraheze>Adám Brudzewsky
Line 27: Line 27:
{{APL programming language}}
{{APL programming language}}
{{APL built-ins}}

Revision as of 11:36, 25 October 2019

Template:Primitive 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.

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 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.


      (⍬≡⍴)¨1 'A'                 ⍝ The shape of a scalar is the empty numeric vector ⍬
1 1
      ⍴'ABCDE'                    ⍝ The shape of a vector is a length-1 vector
      ⍴'ABC'∘.,1 2 3 4            ⍝ The shape of the matrix result of an outer product
3 4
      ⍴'ABC'∘.,1 2 3 4∘.×0J1 1J2  ⍝ Two consecutive outer products result in a cuboid
3 4 2


Dyalog APL


J Dictionary, NuVoc (as "Shape Of")

Template:APL programming language

APL built-ins [edit]
Primitive functions
Monadic ConjugateNegateSignumReciprocalMagnitudeExponentialNatural LogarithmFloorCeilingFactorialNotPi TimesRollTypeImaginarySquare Root
Dyadic AddSubtractTimesDivideResiduePowerLogarithmMinimumMaximumBinomialComparison functionsBoolean functions (And, Or, Nand, Nor) ∙ GCDLCMCircularComplexRoot
Structural ShapeReshapeTallyDepthRavelEnlistTableCatenateReverseRotateTransposeRazeMixSplitEncloseNestCut (K)PairLinkPartitioned EnclosePartition
Selection FirstPickTakeDropUniqueIdentitySelectReplicateExpandSet functions (IntersectionUnionWithout) ∙ Bracket indexingIndex
Selector Index generatorGradeIndex OfInterval IndexIndicesDeal
Computational MatchNot MatchMembershipFindNub SieveEncodeDecodeMatrix InverseMatrix DivideFormatExecuteMaterialiseRange
Primitive operators Monadic EachCommuteConstantReplicateExpandReduceWindowed ReduceScanOuter ProductKeyI-beamSpawnFunction axis
Dyadic BindCompositions (Compose, Reverse Compose, Beside, Withe, Atop, Over) ∙ Inner ProductPowerAtUnderRankDepthVariantStencilCut (J)
Quad names
Arrays Index originMigration levelAtomic vector
Functions Name classCase convertUnicode convert
Operators SearchReplace