Мы хотим передать полный словарь в качестве входных данных лямбда-функции, но по умолчанию kdb передает только значения словаря.
Как мы можем получить ключи словаря внутри лямбда-функции?
Мыне может использовать имя словаря в лямбда-выражениях из-за лексической области видимости.
{0N!x}@'(`ab`cd!1 2) / Inside function we get only 1 and 2 and not `ab`cd
Ниже приведено одно решение, но есть ли другое / лучшее решение:
{key key @'x}(`ab`cd!1 2)
РЕДАКТИРОВАТЬ - здесь понимается проблемапроблема не в том, что словарь передает только значения, а в «каждой» функции / наречи, так как каждый передает только значения в функцию.
q)key each (`ab`cd!1 2)
ab| ,0
cd| 0 1
Скорее, если мы передадим полный словарь в функцию, то мыможно получить ключи или значения.
q){key x}d
`ab`cd
q){value x}d
1 2