# =≤<>≥≡≢

## Contents

`=≤<>≥≡≢`

#

## Comparisons `=≤<>≥≡≢`

#

`=`

is comparison (not assignment!) and penetrates all structures, giving a single Boolean (0 or 1) per leaf element. `≠`

is the negation of that.

`≤<>≥`

work as you’d expect, again penetrating all structure.

`A≡B`

is match. It compares the entire arrays `A`

and `B`

in all respects, even the invisible prototype:

```
''≡⍬ ⍝ does the empty char vector match the empty numeric vector?
```

0

`A≢B`

is not match, the negation of `A≡B`

.

## Depth, tally `≡≢`

#

Monadic `≡B`

gives the depth of `B`

, which is the amount of nesting. A simple scalar is 0, a vector is 1, a vector of vectors is 2, etc. If the amount of nesting is uneven throughout the array, the result will be negative, and indicate the maximum depth.

`≢B`

is the tally of `B`

, i.e. how many major cells `B`

has. For a scalar, that’s 1. For a vector, it is the number of elements, for a matrix it is the number of rows, for a 3D array it is the number of layers, and so on.

```
≡(1 2 (3 4 5 (6 7 8))) ⍝ unevenly nested vector
≢1 ⍝ scalars tally to 1
≢3 2⍴⍳6 ⍝ matrix tally is the number of rows
```

¯3

1

3