RANK ERROR: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
m (Errors category)
m (Text replacement - "</source>" to "</syntaxhighlight>")
Line 5: Line 5:
       ⍳2 3⍴⍳6
       ⍳2 3⍴⍳6
       ∧
       ∧
</source>
</syntaxhighlight>


A RANK ERROR can be caused when arguments do not [[Conformability|conform]] because they have differing ranks:
A RANK ERROR can be caused when arguments do not [[Conformability|conform]] because they have differing ranks:
Line 13: Line 13:
       (2 3⍴2)+⍳6
       (2 3⍴2)+⍳6
             ∧
             ∧
</source>
</syntaxhighlight>


It may also be caused when an array's rank is too small for a function. [[Windowed Reduction]] is not defined on scalars:
It may also be caused when an array's rank is too small for a function. [[Windowed Reduction]] is not defined on scalars:
Line 21: Line 21:
       2+/0.5
       2+/0.5
       ∧
       ∧
</source>
</syntaxhighlight>


A RANK ERROR may be caused when argument ranks are incompatible in some other way. In languages with [[high-rank set functions]] such as [[Dyalog APL]] and [[J]], the right argument rank must be at least the left argument rank minus one. Calling it with a matrix left argument and a scalar right argument, which has a rank two smaller, gives a RANK ERROR:
A RANK ERROR may be caused when argument ranks are incompatible in some other way. In languages with [[high-rank set functions]] such as [[Dyalog APL]] and [[J]], the right argument rank must be at least the left argument rank minus one. Calling it with a matrix left argument and a scalar right argument, which has a rank two smaller, gives a RANK ERROR:
Line 29: Line 29:
       (⍳3 4)⍳⊂1 3
       (⍳3 4)⍳⊂1 3
             ∧
             ∧
</source>
</syntaxhighlight>
{{Works in|[[Dyalog APL]]}}
{{Works in|[[Dyalog APL]]}}




{{APL features}}[[Category:Errors]]
{{APL features}}[[Category:Errors]]

Revision as of 21:01, 10 September 2022

A RANK ERROR is an error message which indicates that an array had an incorrect rank for the way it was used. For example, in most APLs, Iota only accepts a vector or scalar, so giving it a higher-rank array as argument results in a RANK ERROR: <source lang=apl>

     ⍳2 3⍴⍳6

RANK ERROR

     ⍳2 3⍴⍳6
     ∧

</syntaxhighlight>

A RANK ERROR can be caused when arguments do not conform because they have differing ranks: <source lang=apl>

     (2 3⍴2) + ⍳6

RANK ERROR: Mismatched left and right argument ranks

     (2 3⍴2)+⍳6
            ∧

</syntaxhighlight>

It may also be caused when an array's rank is too small for a function. Windowed Reduction is not defined on scalars: <source lang=apl>

     2 +/ 0.5

RANK ERROR

     2+/0.5
      ∧

</syntaxhighlight>

A RANK ERROR may be caused when argument ranks are incompatible in some other way. In languages with high-rank set functions such as Dyalog APL and J, the right argument rank must be at least the left argument rank minus one. Calling it with a matrix left argument and a scalar right argument, which has a rank two smaller, gives a RANK ERROR: <source lang=apl>

     (⍳3 4) ⍳ ⊂1 3

RANK ERROR

     (⍳3 4)⍳⊂1 3
           ∧

</syntaxhighlight>

Works in: Dyalog APL


APL features [edit]
Built-ins Primitives (functions, operators) ∙ Quad name
Array model ShapeRankDepthBoundIndex (Indexing) ∙ AxisRavelRavel orderElementScalarVectorMatrixSimple scalarSimple arrayNested arrayCellMajor cellSubarrayEmpty arrayPrototype
Data types Number (Boolean, Complex number) ∙ Character (String) ∙ BoxNamespaceFunction array
Concepts and paradigms Conformability (Scalar extension, Leading axis agreement) ∙ Scalar function (Pervasion) ∙ Identity elementComplex floorArray ordering (Total) ∙ Tacit programming (Function composition, Close composition) ∙ GlyphLeading axis theoryMajor cell search
Errors LIMIT ERRORRANK ERRORSYNTAX ERRORDOMAIN ERRORLENGTH ERRORINDEX ERRORVALUE ERROREVOLUTION ERROR