Ссылка: https://code.kx.com/q4m3/14_Introduction_to_Kdb+/#1422 -splayed-tables-with-symbol-columns
При выполнении перечисления вручную кто-нибудь может объяснить, как создается вектор sym с использованием @ в приведенном ниже примере ?
Пример:
Я открыл новый экземпляр q:
q)t:([] s1:`a`b`c; v:10 20 30; s2:`x`y`z)
q)@[t;exec c from meta t where "s"=t;`sym?] /- Creates a sym vector in memory
q)sym
/- Output - `a`b`c`x`y`z
q)type sym
/- Output - 11h
EDIT-
Понятно, что apply at
выполняет работу, он равен для обновления списка, используя применить на. Например:
q)l:2 3 9
q)@[l;1;neg]
2 -3 9
Точно так же мы применяем расширение enum к вектору sym, основываясь на условии как второй аргумент, т.е. все столбцы sym таблицы t
@[t;exec c from meta t where t="s";`sym?]