我可以通过加载水溶液脚本,或交互地从控制台限定view:[KDB +/Q]:(重新)定义视图编程(动态地)
q)myview::a+b /even semi-programmatically using ugly strings: value"myview::a+b"
一些勘探:
q)value `. `myview
::
(+;`a;`b)
`a`b
"a+b"
我可以看到,我的新设计的视图现在是全球环境词典的一部分:
q)select myview from `.
myview| a+b
该键值对的值部分是λ-类型的列表:即使
q)-3!value select myview from `.
",a+b"
q) type first value select myview from `.
100h
{a+b}
是λ型,以及...
q)type {a+b}
100h
...的a+b
和{a+b}
不同样的事情:
q){a+b} ~ first value select myview from `.
0b
问: 现在myview
是在全球环境中定义,我如何通过编程方式改变它的定义,比如a+c
lambda表达式,通过引用该视图的名称,即`myview
?
例如,我可能要处理此输入:
q)config:()!(); config[`myview]:"a+c"
感谢,使用表达式而不是字符串操作任何方式? ''F ['MyView的; a + c]''会抛出''c''错误。并且用大括号'{a + c}'封装表达式以延迟评估显然是别的。无法控制myview |的右手边A + C' –