How can I define my own infix functions?

Put them in the .q workspace, e.g.,

q).q.f: {x + y}
q)5 f 6

This is generally considered bad style.

What’s the difference between kdb, kdb+, k, k4 and q?

kdb is the predecessor to kdb+®.  At one point kdb was an application on top of k.   At kdbfaq, we refer to kdb+® as kdb. q is the programming language of kdb. It’s a small layer of syntatic sugar on top of k, plus several significant extensions and new datatypes. k4 is simply an old name for q.

See $QHOME/q.k to see how much of q is written in k.

This work is licensed under a Creative Commons License.
The views and opinions expressed herein are those of the authors and do not necessarily reflect those of any other person or legal entity.
Kdb+ is the registered trademark of Kx Systems, Inc.