无法评估手动创建的等值〜解析树

问题描述

怎么可能等同于手动创建的解析树和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评估相同的表达式?

我想我缺少了什么,但是呢?


更新: 这种方法正确吗?:

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

解决方法

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

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解析投影,或者应用然后评估解析树

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...