我可以通過加載水溶液腳本,或交互地從控制檯限定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' –