2016-09-27 4 views
1

私は実際のKDBの専門家であるため、Kを学ぶべきですか?だから私はいくつかの速い機能を書いて、物事が実際に働く方法などを理解することができますか?KDB +/Q内のKと条件付き分岐を具体的に使用すると

私はK-Lite Ref Manualの例であったにもかかわらず、この階乗の定義がうまくいかないことがわかりました。

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

条件(:)よりも使用するように変更して動作させています。

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

":[a; b; c]"の構文はなくなっていますか?何を置き換えたの?

KDBの基礎となるKの実際のバージョンのチートシートはありますか?

してください。

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

OMG:私は実際に種類のK.と恋に落ちるよ

はKでクイックソートの負荷を入手します!他の言語も長時間巻き込まれているように見えます!

答えて

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

例:私の知る限り、同様にK関数の内部で動作するようには思えん

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

+0

。ありがとう! – JSLover

+0

はい、ドル演算子はkからネイティブです。 qは、最も簡単な形で、kで書かれた関数の追加層です。 $ QHOME/q.kを見てください:) –

+2

@JSLover:kで関数を書くことで_equivalent_qの実装よりも速くなるわけではないことに注意してください。 –

関連する問題