Kdb .Q.trp和bt处理
我在Kdb .Q.trp和bt处理,kdb,k,Kdb,K,我在.Q.fpn中看到了以下解析和显示传递给.Q.trp函数的bt对象的技术: q)f:{x+1} q).Q.trp[f;`a;{'(x;y)}] 'type [4] f:{x+1} ^ [3] (.Q.trp) [2] .Q.trp[f;`a;{'(x;y)}] ^ [0] .Q.trp[f;`a;{'(x;y)}] ^ ”(x;y)似乎是一种异常构建构造,-但Kx文档指出只有两种异常构建方式:从符号和从字符串。看起
.Q.fpn
中看到了以下解析和显示传递给.Q.trp
函数的bt
对象的技术:
q)f:{x+1}
q).Q.trp[f;`a;{'(x;y)}]
'type
[4] f:{x+1}
^
[3] (.Q.trp)
[2] .Q.trp[f;`a;{'(x;y)}]
^
[0] .Q.trp[f;`a;{'(x;y)}]
^
”(x;y)
似乎是一种异常构建构造,-但Kx文档指出只有两种异常构建方式:从符号和从字符串。看起来我们可以从(symbol;bt object)
列表中构建异常
那么结构'(x;y)
代表什么呢
我们可以用
'(x;y)
构建不同于异常的东西吗?我的猜测是,这是最近随着.Q.trp/.Q.bt功能的添加而允许的一个特定信号。它似乎只适用于(符号;bt对象)
或(字符串;bt对象)
,其他任何内容都无法识别
q).Q.trp[{1+x};`a;{'(x;y;1)}]
'stype
如果返回时没有信号,则可以存储输出:
q)r:.Q.trp[{1+x};`a;{(x;y)}]
这种类型的信号似乎在任何环境下都能工作,而不仅仅是在.Q.trp:
q)'("other";last r)
'other
[2] {1+x}
^
[1] (.Q.trp)
[0] r:.Q.trp[{1+x};`a;{(x;y)}]
我怀疑last r
有一个非常特殊的格式/形状,可以制作,但它似乎是一个不必要的用例
奖金怪事:
这项工作:
q)'("other";())
'other
[0] '("other";())
^
但我尝试过的其他东西显示出奇怪的错误:
q)'("other";(();()))
pl0
pl0
q)
q)'("other";"abc")
srr
那个
srr
错误是个奇怪的错误。几个月前有一个关于这个错误的问题,我认为这是ssr
的输入错误,或者是一个未定义的变量