Каков общий способ работы со строками в q
, в каком-то смысле, кто отвечает за обработку односимвольной строки: сама функция или пользователь, который ее запускает?
Пример:
$ q
KDB+ 3.6 2019.04.02 Copyright (C) 1993-2019 Kx Systems
m32
q)ssr["bar";"r";"z"] /looks good at a first glance
"baz"
q)ssr["bar";"?";"z"] /but wait, nothing happens here
"bar"
q)ssr["bar";(),"?";"z"] /convert 1-char to list: ok
"zzz"
Посмотрите разницу между отправкой одной буквы (r
) и вопросительного знака (?
). Сама по себе отправка одного символа ?
не дала ничего полезного.
Это функция из ssr
? И каков общий случай отправки / получения одного символа - кто в большинстве случаев должен нести ответственность за работу с атомами и списками?
Upd: Спасибо @terrylynch за указание на это особенность ss
/ ssr
:
q)ssr["bar?";"?";"z"]
"barz"