RANK ERROR: Difference between revisions

From APL Wiki
Jump to navigation Jump to search
Miraheze>Adám Brudzewsky
No edit summary
Miraheze>Marshall
mNo edit summary
Line 1: Line 1:
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 results in a RANK ERROR:
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 results in a RANK ERROR:
<source lang=apl>
<source lang=apl>
       ⍳2 3⍴⍳6
       ⍳2 3⍴⍳6

Revision as of 13:29, 14 November 2019

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 results in a RANK ERROR:

      ⍳2 3⍴⍳6
RANK ERROR
      ⍳2 3⍴⍳6
      ∧

A RANK ERROR can be caused when arguments do not conform because they have differing ranks:

      (2 3⍴2) + ⍳6
RANK ERROR: Mismatched left and right argument ranks
      (2 3⍴2)+⍳6
             ∧

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

      2 +/ 0.5
RANK ERROR
      2+/0.5
       ∧

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:

      (⍳3 4) ⍳ ⊂1 3
RANK ERROR
      (⍳3 4)⍳⊂1 3
            ∧
Works in: Dyalog APL