Я использую ниже, чтобы объединить несколько таблиц
() uj/(a;b;c)
Однако есть ли способ передать список таблиц для достижения этой цели?
В настоящее время, если я делаю ниже, я получаю ошибку типа
tbList:tables[]
() uj/(tbList)
Спасибо
3 ответа
uj
требует аргументов таблицы, а tables[]
возвращает имена переменных в корневом пространстве имен, которые являются таблицами, в виде списка символов.
Чтобы получить список таблиц из этого, вы можете использовать value each tables[]
, который по очереди оценит каждое имя переменной и вернет оцененные таблицы в виде списка.
Если /
(over) предоставляется только с одним аргументом списка, то в качестве начального значения будет выбран первый элемент, поэтому вам не нужно указывать пустой список в качестве начального значения, например:
uj/[value each tables[]]
Технически это может быть достигнуто путем передачи имен таблиц:
eval (uj/;enlist,`tab1`tab2`tab3)
Но может быть более обычным использовать value
, как предлагали другие
() uj/value each tbList
Оценивая символ, возвращает значение переменной, которую он называет.
Похожие вопросы
Новые вопросы
kdb
kdb + - это собственная высокопроизводительная база данных, разработанная Kx Systems.