簡體   English   中英

無法評估手動創建的等效 ~ 解析樹

[英]Could not evaluate manually created equial ~ parse tree

手動創建的解析樹和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或 apply & 然后評估解析樹來解析投影

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM