(Повышение этого до ответа, так как я полагаю, что это помогает ответить на вопрос).
Исходя из цепочки комментариев: для того, чтобы перевести код k в код q (или просто понять код k) ) у вас есть несколько вариантов, ни один из которых не особенно хорошо документирован, так как это отрицает цель языка q - быть оболочкой, скрывающей язык k.
Вариант 1 - проверка встроенных функций в пространстве имен .q
q).q
| ::
neg | -:
not | ~:
null | ^:
string | $:
reciprocal| %:
floor | _:
...
Вариант 2 - проверка скрипта qk, создающего указанное пространство имен (будьте осторожны, чтобы не редактировать / измените это):
vi $QHOME/q.k
Вариант 3 - поиск некоторых фрагментов документации на веб-сайте code.kx, например https://code.kx.com/q/wp/parse-trees/#k4 -q-and-qk и https://code.kx.com/q/basics/exposed-infrastructure/#unary -forms
Варианты 4 - поиск в Google справочных материалов для других / похожих версий k, например, k2 / k3. Они имеют тенденцию быть похожими - я sh.
Последнее замечание: в большинстве этих примеров вы увидите двоеточие (:) после примитивов .... это двоеточие требуется в q / kdb для использования формы monadi c примитив (большинство сильно перегружено), тогда как в k не требуется явно форсировать форму monadi c. Вот почему where
будет отображаться как &:
в ссылке q, но обычно будет &
в реальном коде k