# Missing some items

**URL:** <https://forum.kx.com/t/missing-some-items/13810>\
**Category:** Community Support\
**Tags:** imported, kdb-and-q\
**Created:** [April 25, 2022, 12:00am UTC](https://forum.kx.com/t/missing-some-items/13810 "2022-04-25T00:00:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SJT](https://avatars.discourse-cdn.com/v4/letter/s/a587f6/32.png) [@SJT](https://forum.kx.com/u/SJT)\
**Post date:** [April 25, 2022, 12:00am UTC](https://forum.kx.com/t/missing-some-items/13810/1 "2022-04-25T00:00:00Z")

</div>

[https://learninghub.kx.com/forums/topic/missing-some-items](https://learninghub.kx.com/forums/topic/missing-some-items)

We encounter the [`enlist`](https://code.kx.com/q/ref/enlist/") keyword early in learning q; a reliable way to make a one-item list where `1#` wont do. But there is a bit more to `enlist` than that.

In the first place, it is not only [variadic](https://code.kx.com/q/basics/glossary/#variadic") taking various numbers of arguments it will take _any_ number of arguments, even more than eight.

&nbsp;

q)enlist[`one;`two;`three;`four;`five;`six;`seven;`eight;`nine] `one`two`three`four`five`six`seven`eight`nine

&nbsp;

Of course, what it returns is a list, with each argument an item.

&nbsp;

q)enlist[`one;`two;`three`and`a`bit;`four;`five;`six;`seven;`eight;`nine]

`one `two `three`and`a`bit `four `five `six `seven `eight `nine

&nbsp;

What is less obvious is that `enlist` is implicated in lists with missing items.

&nbsp;

```
q)type (`one;`two;`three) / symbol vector 
11h 
q)type (`one;::;`three) / mixed list 
0h 
q)type (`one;;`three) / a -- projection? 
104h 
q)(`one;;`three) ~ enlist[`one;;`three] 
1b
```

&nbsp;

Is the missing item a generic null? No, a list with one or more missing items is a projection of `enlist`, and its [rank](https://code.kx.com/q/basics/glossary/#rank") is the number of missing arguments. We can apply and iterate it as any other projection.

&nbsp;

```
q)(`one;;`three;;`five)[`two;`four] 
`one`two`three`four`five 
q)(`one;;`three;;`five) . `two`four 
`one`two`three`four`five 
q)raze `quick`crafty`cunning(`the;;`brown;;`jumps)/::`fox`cat`dog 
the quick brown fox jumps 
the quick brown cat jumps 
the quick brown dog jumps 
the crafty brown fox jumps 
the crafty brown cat jumps 
the crafty brown dog jumps 
the cunning brown fox jumps 
the cunning brown cat jumps 
the cunning brown dog jumps
```

&nbsp;

Which gives us a few tricks up our sleeves when generating test datasets, or preparing data for loading and ingestion.
