3 ms·
Yeah kdb is built so that the entire core of the db fits in L1 CPU cache. It really is an impressive feat of engineering and optimization. I did hate it when w
by SEJeff 10y ago
Yeah kdb is built so that the entire core of the db fits in L1 CPU cache. It really is an impressive feat of engineering and optimization.
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]]}
- icen 10y agoIt's not like that first factorial function is actually any worse than the usual Haskell one: 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.
- PeCaN 10y agoMakes sense to me, assuming 'til' is 'iota' and 'prd' is 'fold-with-multiplication'. 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.