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:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
f: {[x] | |
x | |
} |
Even a function’s closing brace must be indented if it appears on a line by itself:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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