enlist
¶
Make a list
enlist x enlist[x] enlist[x;y;z;…]
Returns a list with its argument/s as items.
The most common use is to make a 1-item list.
An atom is not a one-item list: enlist
and first
convert between the two.
q)a:10
q)b:enlist a
q)c:enlist b
q)type each (a;b;c)
-7 7 0h
q)a~b
0b
q)a~first b
1b
q)b~c
0b
q)b~first c
1b
The result has as many items as the keyword is applied to.
q)show a:enlist[til 5;`ibm`goog;"hello"]
0 1 2 3 4
`ibm`goog
"hello"
q)count a
3
Unlike user-defined functions, enlist
is not limited to 8 arguments.
q)count b:enlist[0;`1;"two";3;`four;5;`6;"seven";8;`nine]
10
Where x
is a dictionary, the result is a 1-item table.
q)enlist `a`b`c!(1;2 3; 4)
a b c
-------
1 2 3 4
Atoms to lists
To ensure all items in a list are themselves lists and not atoms, use (),
, which leaves lists unchanged.
For example, {(),x} each foo
converts any atoms in list foo
into singleton lists.
Assign a 1-item list
While enlist
returns a 1-item list, if all you need to do is assign it to a name not presently defined, you can exploit the fact that foo,:
does not require foo
to be defined.
q)a:enlist[3]
q)b,:3
q)a~b
1b