Previous: , Up: Top  


19 Conclusion

I expect you are surprised by the performance possible by k9 and the fact that it all fits into a 134,152 bytes! (For comparison the ls program weighs in 51,888 bytes and can’t even change directory.)

If you’re frustrated by the syntax or terse errors, then you’re not alone. I’d expect most had the same problems, persevered, and finally came away a power user able to squeeze information from data faster than previously imagined.

If you’ve come along enough to get it, then you’ll probably realised this manual isn’t needed and it’s all here...

Universal database, webserver and language -- full stack -- fast

Database
 select A by B from T where C; update A from T
 count first last sum min max *[avg var dev med ..]
 x,y      / insert, upsert, union, equi+asof leftjoin
 x+y      / equi+asof outerjoin (e.g. combine markets through time)
 x#y      / take/intersect
 x_y      / drop/difference

Language
Verb                      Adverb               Type              System
:    x         y          f/  over  c/  +join  bool 011b         \l a.k
+    flip      plus       f\  scan  c\  +split int  0N 0 2 3     \t:n x
-    negate    minus      f'  each  v'  +has   flt  0n 0 2 3.    \u:n x
*    first     times      f': eachp v': +bin   char " ab"        \v
%              divide     f/: eachr ([n;]f)/:  name ``ab         \w
&    where     min/and    f\: eachl ([n;]f)\:  uuid              \cd x
|    reverse   max/or
<    asc       less              .z.[md]       date 2001.01.01
>    dsc       more              .z.[hrstuv]   time 12:34:56.123456789
=    group     equal      I/O
~    not       match      0:  r/w line         Class             \f
!    enum      key        1:  r/w byte         List (2;3.4;`a)   \ft x
,    enlist    cat       *2:  r/w data         Dict `i`f!(2;3.4) \fl x
^    sort   [f]cut       *3:  k-ipc set        Func {[a;b]a+b}   \fc x
#    count  [f]take      *4:  https get        Expr :a+b
_    floor  [f]drop
$    string    cast+                           Table
?    unique+   find+      $[b;x;y] if else     t:[[]i:2 3;f:3 4.;s:`a`b]
@    type   [f]at         @[x;i;f[;y]] amend   utable [[b:..]a:..]
.    value  [f]dot        .[x;i;f[;y]] dmend   xtable `..![[]a:..]
sqrt sqr exp log sin cos div mod bar .. freq rank msum .. in bin within ..
\\   exit      / comment  *[if do while select[a;b;t;c]]

Interface
`csv?`csv t    / read/write csv
`json?`json t  / read/write json
-python:   import k;k.k('+',2,3)
-nodejs: require('k').k('+',2,3)
*ffi: "./a.so"5:`f!"i"  /I f(I i){return 2+i;}       //cblas ..
*c/k: "./b.so"5:`f!1    /K f(K x){return ki(2+xi);}  //feeds ..

*enterprise[unlimited data/users/machines/..] +overload

Previous: , Up: Top