by Stephen Taylor, KX Librarian.
In the beginning, there was no reference. When developers with vector-programming experience wrote terse, fast q solutions without loops or control structures, awed scalar developers called them “the q gods”.
The leading kdb+ textbook is even called Q for Mortals. The metaphor honors the skill, but places it beyond our reach.
The power of q is not reserved to members of a divine race. It is available to anyone who wants it. It yields to study, immersion, and practice.
Vector languages such as q support a particular way of thinking about problems and solutions.
Experience with other programming languages taught me to analyze problems into loops, tests, and cases. This is the scalar approach. You can write q this way, but it will limit what you can get done.
Iteration is largely free in q: it is implicit in most of the primitives.
That is so we can stop thinking about iterations and think instead about operations on lists and other structures.
The shift to vector thinking can be a challenge. Play is an excellent way to explore new techniques.
Q by Puzzles is the start of a new section on code.kx.com. It studies vector programming techniques in the context of simple problems. They explore distinctive features of q in some depth.
Use them to train your brain for q.