使用KDB + / Q中的K和具体的条件分支

时间:2016-09-27 11:50:07

标签: kdb k

我想,要成为真正的KDB专家,我应该学习K,对吗?所以我可以编写一些快速函数并理解事物的实际工作方式等等。

我发现这个阶乘的定义不起作用,即使它是K-Lite Ref手册中的一个例子。

fac1: {:[x>1; x * fac[x-1]; 1]}

我修改它使用if而不是条件(:)并且它有效。

fac2: {if[x>1; :x * fac[x-1]]; 1}

“:[a; b; c]”语法消失了吗?什么取代了它?

KDB +的实际K版本是否有备忘单,我可以获得一份副本?

请?

我实际上爱上了K.在K中获得了一大堆Quicksort:

https://rosettacode.org/wiki/Sorting_algorithms/Quicksort#K

OMG!使其他语言看起来如此冗长!

1 个答案:

答案 0 :(得分:2)

尝试使用$(if-else)代替:

http://code.kx.com/q/ref/control/#cond

这是学习q / kdb +的备忘单。 https://github.com/KxSystems/kdb/blob/master/d/primer.htm

IMO开始学习q会容易得多,因为有更多可用的资源。即code.kx

示例:

fac:{$[x>1; x * fac[x-1]; 1]}