# 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 as argument 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
∧
```

APL features [edit]
| |
---|---|

Built-ins | Primitive function ∙ Primitive operator ∙ Quad name |

Array model | Shape ∙ Rank ∙ Depth ∙ Bound ∙ Index ∙ Axis ∙ Ravel ∙ Ravel order ∙ Element ∙ Scalar ∙ Vector ∙ Matrix ∙ Simple scalar ∙ Simple array ∙ Nested array ∙ Box ∙ Cell ∙ Major cell ∙ Subarray ∙ Empty array ∙ Prototype |

Concepts and paradigms | Leading axis theory ∙ Scalar extension ∙ Conformability ∙ Scalar function ∙ Pervasion ∙ Glyph ∙ Identity element ∙ Total array ordering |

Errors | LIMIT ERROR ∙ RANK ERROR ∙ SYNTAX ERROR ∙ DOMAIN ERROR ∙ LENGTH ERROR ∙ INDEX ERROR ∙ VALUE ERROR |