(kdb+/q) 附加到字典
(kdb+/q) append to dictionary
我正在尝试以编程方式为 functional select 调用构造具有以下形式的参数:
?[ `t; () ; groupBy; ()]
有问题的部分是groupBy
,应该是字典。
假设 objective 以以下形式到达解析树:
parse "select by sym,month:`date$dt.month from t"
我开始构建 by
部分:
groupBy: enlist[`sym]!enlist(`sym)
然后我尝试通过语句附加组的 month
部分(注意周期性已参数化):
per: `month / monthly periodicity
groupBy,: {enlist[x]!enlist[ $[x = `day;
`dt;
$[x=`month;
((parse "select by month:`date$dt.month from x")@3)@`month
;` sv (`dt,x)]
]]
}[per]
但是,这会引发 type
错误。出了什么问题?
我认为它不喜欢复合赋值
groupBy,:{...}
尝试
groupBy:groupBy,{...}
不同之处在于,在第一种情况下,它试图在不创建副本的情况下直接更改内存中的数据,而在第二种情况下,它在内存中创建数据的副本,然后将其重新分配给多变的。也许复合赋值只有在类型统一时才有效
我正在尝试以编程方式为 functional select 调用构造具有以下形式的参数:
?[ `t; () ; groupBy; ()]
有问题的部分是groupBy
,应该是字典。
假设 objective 以以下形式到达解析树:
parse "select by sym,month:`date$dt.month from t"
我开始构建 by
部分:
groupBy: enlist[`sym]!enlist(`sym)
然后我尝试通过语句附加组的 month
部分(注意周期性已参数化):
per: `month / monthly periodicity
groupBy,: {enlist[x]!enlist[ $[x = `day;
`dt;
$[x=`month;
((parse "select by month:`date$dt.month from x")@3)@`month
;` sv (`dt,x)]
]]
}[per]
但是,这会引发 type
错误。出了什么问题?
我认为它不喜欢复合赋值
groupBy,:{...}
尝试
groupBy:groupBy,{...}
不同之处在于,在第一种情况下,它试图在不创建副本的情况下直接更改内存中的数据,而在第二种情况下,它在内存中创建数据的副本,然后将其重新分配给多变的。也许复合赋值只有在类型统一时才有效