需要解释kdb/q脚本以保存分区表
我试图理解以下代码片段:需要解释kdb/q脚本以保存分区表,kdb,Kdb,我试图理解以下代码片段: https://code.kx.com/q/kb/loading-from-large-files/ 要自己定制它(按小时、分钟、滴答数等划分的e.x分区): 它与参数d有什么关系?(将其提升为一个答案,因为我相信它有助于回答问题) 下面是注释链:为了将k代码翻译成q代码(或者简单地理解k代码),您有几个选项,其中没有一个选项的文档记录得特别好,因为它违背了q语言的目的——成为掩盖k语言的包装器 选项1是检查.q命名空间中的内置函数 q).q |
https://code.kx.com/q/kb/loading-from-large-files/
要自己定制它(按小时、分钟、滴答数等划分的e.x分区):
它与参数d
有什么关系?(将其提升为一个答案,因为我相信它有助于回答问题)
下面是注释链:为了将k代码翻译成q代码(或者简单地理解k代码),您有几个选项,其中没有一个选项的文档记录得特别好,因为它违背了q语言的目的——成为掩盖k语言的包装器
选项1是检查.q命名空间中的内置函数
q).q
| ::
neg | -:
not | ~:
null | ^:
string | $:
reciprocal| %:
floor | _:
...
选项2是检查创建上述名称空间的q.k脚本(注意不要编辑/更改):
选项3是在code.kx网站上查找一些文档,例如
选项4是通过谷歌搜索其他/类似版本的k的参考资料,例如k2/k3。他们倾向于相似
最后一点需要注意的是,在大多数示例中,您将在原语后面看到一个冒号(:)。在q/kdb中,使用原语的一元形式(大多数重载)需要这个冒号,而在k中,不需要显式强制使用一元形式。这就是为什么
其中
在q参考中显示为&:
,但在实际k代码中通常只显示为&
您熟悉q/kdb底层的k编程语言吗?大多数代码片段都需要了解k代码以及.Q名称空间的内容(.e.g“en”是.Q.en,有文档记录)我正在学习Q,我知道它在Q空间中,.Q.en用于枚举varchar。如果[~&/qm'r:+en[d]t;'unmappable];,可能引发
不可映射错误。但总的来说,我不这么认为。正如我所说,您需要熟悉k代码(特别是k4)才能理解所有代码<代码>+是翻转
,&
是其中
,~
是非
等。使用此选项,您可以用q术语重写函数,这应该会对您有所帮助understand@terrylynch. 你能和我一起看看+是翻转和&是“哪里”的链接吗。我没有在里面找到它们。谢谢你好,下面是我的答案谢谢,这对我很有帮助。
if[~&/qm'r:+en[d]t;'`unmappable];
q).q
| ::
neg | -:
not | ~:
null | ^:
string | $:
reciprocal| %:
floor | _:
...
vi $QHOME/q.k