Kdb 无法计算手动创建的equial~解析树

Kdb 无法计算手动创建的equial~解析树,kdb,k,Kdb,K,手动创建的解析树与parse操作的结果如何相等: q)t:([]date:.z.d+til 5;ccy:5#`EUR`CAN`AUS;fx:5?(1.0 0.1)) q)@[;`date;1+]t date ccy fx ------------------ 2020.11.01 EUR 0.1 2020.11.02 CAN 1 2020.11.03 AUS 0.1 2020.11.04 EUR 1 2020.11.05 CAN 0.1 q)parse"@[;`date;1

手动创建的解析树与
parse
操作的结果如何相等:

q)t:([]date:.z.d+til 5;ccy:5#`EUR`CAN`AUS;fx:5?(1.0 0.1))
q)@[;`date;1+]t
date       ccy fx
------------------
2020.11.01 EUR 0.1
2020.11.02 CAN 1
2020.11.03 AUS 0.1
2020.11.04 EUR 1
2020.11.05 CAN 0.1
q)parse"@[;`date;1+]t"
(@;::;,`date;(+;1))
`t
q)eval parse"@[;`date;1+]t"
date       ccy fx
------------------
2020.11.01 EUR 0.1
2020.11.02 CAN 1
2020.11.03 AUS 0.1
2020.11.04 EUR 1
2020.11.05 CAN 0.1
q)((@;::;(),`date;(+;1));`t) ~ parse"@[;`date;1+]t"
1b
q)eval ((@;::;(),`date;(+;1));`t)
'date
  [0]  eval ((@;::;(),`date;(+;1));`t)
       ^
以及无法通过
eval
计算相同的表达式

我想我错过了什么,但是什么


Upd: 这种方法正确吗

eval over ((@;;(),`date;(+;1));`t)

投影中的占位符恰好具有类型101h(与identity相同),但在内部它们是不同的

q)type(parse"+[;2]")1
101h
q)type(parse"+[::;2]")1
101h
q)
q)null(parse"+[::;2]")1
1b
q)null(parse"+[;2]")1
0b
对于单个省略项,我将使用
value
或apply解析投影,然后计算解析树

q)value((@;;(),`date;(+;1));`t)
@
`t
,`date
(+;1)
q)
q)(@).((@;;(),`date;(+;1));`t)
@
`t
,`date
(+;1)

非常感谢!我们需要两次评估才能正确评估吗?:
eval eval((+;;2);1)
添加到我的原始答复中