2

我想,要成为真正的 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 的实际版本的备忘单,我可以获得一份副本?

请?

我实际上有点爱上了 K。在 K 中获取大量 Quicksort:

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

我的天啊!使其他语言看起来如此冗长!

4

1 回答 1

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 会容易得多,因为有更多可用资源。即代码.kx

例子:

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

于 2016-09-27T12:04:14.323 回答