专门使用 KDB+ / Q 中的 K 和条件分支

Using the K inside of KDB+ / Q and conditional branching specifically

我想,要成为真正的KDB专家,我应该学K吧?这样我就可以编写一些快速函数并了解实际工作原理等等?

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

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

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

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

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

是否有针对作为 KDB+ 基础的实际 K 版本的作弊程序 sheet 我可以获得一份副本?

请问?

我实际上有点爱上 K。在 K 中加载快速排序:

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

天哪!让其他语言看起来太啰嗦了!

尝试使用 $ (if-else) 而不是 :

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

这是学习 q/kdb+ 的秘籍 sheet。 https://github.com/KxSystems/kdb/blob/master/d/primer.htm

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

示例:

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