« What is a dyadic function? | Main | How do I delete a column from a table? »

I understand white space matters in q code. Where does it matter?

  • The first character before a '/' that begins a comment must be whitespace (newline is OK).
  • Every line after the first in a multiline expressions must be indented.

The latter rule applies, for example, to functions. The following is not valid q:

f: {[x]
x}

Even a function's closing brace must be indented if it appears on a line by itself:

f: {[x]
x
}

Function definition is not the only time you have to be careful to follow this rule, however. In the following example, g is not the list (47; 48); rather, g is a projection of the comma operator with its first argument set to 47:

g: 47,
48

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (1)

here's another (obscure) place where white space matters:

q)f:{[x] -1"x is ",string x;} /you need the space between the ] and the -
q)f12
x is 12
q)f:{[x]-1"x is ",string x;} /this will fail
'-
q)

October 3, 2011 | Unregistered CommenterMike Rosenberg

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
All HTML will be escaped. Textile formatting is allowed.