# Enlist

Jump to navigation
Jump to search

**Enlist** (`∊`

) is a primitive function which returns a simple vector of all simple scalar values in a possibly nested array. Enlist differs from Ravel in that Enlist flattens over all layers of nesting, while Ravel flattens only the outermost layer. Enlist shares its glyph `∊`

with the dyadic function Membership.

## Examples

Enlist is equivalent to a depth-first search collecting all simple scalars, where each layer (which in turn can be of any rank) is traversed in ravel order.

```
⎕←MAT←2 2⍴'MISS' 'IS' 'SIP' 'PI'
┌────┬──┐
│MISS│IS│
├────┼──┤
│SIP │PI│
└────┴──┘
∊MAT
MISSISSIPPI
⎕←M←1 (2 2⍴2 3 4 5) (6(7 8))
┌─┬───┬───────┐
│1│2 3│┌─┬───┐│
│ │4 5││6│7 8││
│ │ │└─┴───┘│
└─┴───┴───────┘
∊M
1 2 3 4 5 6 7 8
```

Enlist acts like Ravel for simple arrays. This includes simple scalars, where the result is a singleton vector.

```
⎕←mat←4 4⍴⍳16
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
(,mat)≡∊mat
1
∊3
3
3 ≡ ∊3 ⍝ Not the same
0
⍴∊3 ⍝ It's now a vector
1
```

## External links

### Lessons

### Documentation