Reference/Parentheses

From Kx Wiki
Revision as of 20:46, 29 May 2015 by Alvin Shih (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

() (precedence/list/table)

precedence

Normally, q expressions are parsed from right to left regardless of the operators used (so the rightmost operators take precedence), but using parentheses can change this:

q)til 3-1
0 1
q)til (3-1)    / same thing
0 1
q)(til 3)-1
-1 0 1

list

Parentheses can be used to define a list with arbitrary contents, by separating each element with a semicolon (;). The same syntax is also used for parse trees. See also Q for Mortals.

q)(1 2 3;`symbol;+)
1 2 3
`symbol
+

table

Tables are defined with a similar syntax to lists, but with a set of brackets inside the parentheses. Both keyed and non-keyed tables can be defined this way. See also Q for Mortals.

q)([] a:2 3; b:5 6)
a b
---
2 5
3 6
q)([x:0 1] a:2 3; b:5 6)
x| a b
-| ---
0| 2 5
1| 3 6

monad

q)0+/1 2 3   // Dyadic form needs initial value on the left.
6
q)+/1 2 3    // Error of omitted.
'/
q)(+/)1 2 3  // Monadic form if in parens.
6
q)

For a complete list of functions, see the kdb+ Function Reference.

Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox