Interested in how this differs from kdb+, I see it isn't part of the performance comparison chart but seems to have some feature overlap.
I did hate it when we used it however. It required more or less a team of people doing querying on it fulltime. Have you seen the queries in Q? It looks like someone set the baud speed wrong on a serial connection:
From wikipedia's page on Q (the query language of kdb):
The factorial function can be implemented directly in Q as
{prd 1+til x}
or recursively as
{$[x=0;1;x*.z.s[x-1]]} fac = \n -> product [1..n]
The recursive one is also much the same as a Haskell one, but Q is hardly built around idiomatic recursion.I don't know Q, but I'd guess you read it right-to-left like J/K/APL. `x` is the right argument (in J it's `y`), so if we were to call `factorial 5`:
1. Create an array of [0,x) | 0, 1, 2, 3, 4
2. Add 1 to each element of the array | 1, 2, 3, 4, 5
3. Fold the array with multiplication | 120
Array languages are super elegant and fun once you use them a bit.