je peux définir view soit par le script de chargement de aq, ou de façon interactive à partir de la console:[KDB +/Q]: (Re) définir vue par programme (dynamiquement)
q)myview::a+b /even semi-programmatically using ugly strings: value"myview::a+b"
Certains exploration:
q)value `. `myview
::
(+;`a;`b)
`a`b
"a+b"
Je vois que mon avis nouvellement conçu est maintenant partie du l'environnement mondial dictionnaire:
q)select myview from `.
myview| a+b
La partie de la valeur de cette paire valeur-clé est une liste des types lambda:
q)-3!value select myview from `.
",a+b"
q) type first value select myview from `.
100h
Même si {a+b}
est de type lambda et ...
q)type {a+b}
100h
... la a+b
et {a+b}
ne sont pas la même chose:
q){a+b} ~ first value select myview from `.
0b
question: maintenant que myview
est défini dans l'environnement global, comment puis-je changer sa définition par programme, pour dire a+c
expression lambda, en se référant à cette vue par son nom, c'est-à-dire `myview
?
Par exemple, je veux traiter cette entrée:
q)config:()!(); config[`myview]:"a+c"
grâce, aucune façon en utilisant des expressions plutôt que la manipulation de chaînes ? '' f ['myview; a + c] '' lancerait l'erreur 'c'. Et encapsuler l'expression dans les accolades '{a + c}' pour retarder l'évaluation est évidemment quelque chose d'autre. Je ne peux pas tourner la tête en manipulant le côté droit de 'myview | a + c' –