Skip to content

& Lesser, and

Lesser of two values; logical AND

x & y         &[x;y]
x and y       and[x;y]

Returns the lesser of the underlying values of x and y.

q)2&3
2
q)1010b and 1100b  /logical AND with booleans
1000b
q)"sat"&"cow"
"cat"

Flags

Where x and y are both flags, Lesser is logical AND.

Use and for flags

While Lesser and and are synonyms, it helps readers to apply and only and wherever flag arguments are expected.

There is no performance implication.

Dictionaries and keyed tables

Where x and y are a pair of dictionaries or keyed tables their minimum is equivalent to upserting y into x where the values of y are less than those in x.

q)show a:([sym:`ibm`msoft`appl`goog]t:2017.05 2017.09 2015.03 2017.11m)
sym  | t
-----| -------
ibm  | 2017.05
msoft| 2017.09
appl | 2015.03
goog | 2017.11

q)show b:([sym:`msoft`goog`ibm]t:2017.08 2017.12 2016.12m)
sym  | t
-----| -------
msoft| 2017.08
goog | 2017.12
ibm  | 2016.12
q)a&b
sym  | t
-----| -------
ibm  | 2016.12
msoft| 2017.08
appl | 2015.03
goog | 2017.11

Mixed types

Where x and y are of different types the lesser of their underlying values is returned as the higher of the two types.

q)98&"c"
"b"

Implicit iteration

Lesser and and are atomic functions.

q)(10;20 30)&(2;3 4)
2
3 4

They apply to dictionaries and tables.

q)k:`k xkey update k:`abc`def`ghi from t:flip d:`a`b!(10 -21 3;4 5 -6)

q)d&5
a| 5 -21 3
b| 4 5   -6

q)d&`b`c!(10 20 30;1000*1 2 3)  / upsert semantics
a| 10   -21  3
b| 4    5    -6
c| 1000 2000 3000

q)t&5
a   b
------
5   4
-21 5
3   -6

q)k&5
k  | a   b
---| ------
abc| 5   4
def| -21 5
ghi| 3   -6

Domain and range

    b g x h i j e f c s p m d z n u v t
----------------------------------------
b | b . x h i j e f c . p m d z n u v t
g | . . . . . . . . . . . . . . . . . .
x | x . x h i j e f c . p m d z n u v t
h | h . h h i j e f c . p m d z n u v t
i | i . i i i j e f c . p m d z n u v t
j | j . j j j j e f c . p m d z n u v t
e | e . e e e e e f c . p m d z n u v t
f | f . f f f f f f c . p m d z n u v t
c | c . c c c c c c c . p m d z n u v t
s | . . . . . . . . . . . . . . . . . .
p | p . p p p p p p p . p p p p n u v t
m | m . m m m m m m m . p m d . . . . .
d | d . d d d d d d d . p d d z . . . .
z | z . z z z z z z z . p . z z n u v t
n | n . n n n n n n n . n . . n n n n n
u | u . u u u u u u u . u . . u n u v t
v | v . v v v v v v v . v . . v n v v t
t | t . t t t t t t t . t . . t n t t t

Range: bcdefhijmnptuvxz


or, |, Greater, max, min
Comparison, Logic
Q for Mortals §4.5 Greater and Lesser