оператор добавления списка, который не выполняет автоматическое развертывание - PullRequest
0 голосов
/ 16 апреля 2019

Рассмотрим

q)-3!1,2
"1 2"
q)-3!1,enlist 2
"1 2"
q)-3!(enlist 1),enlist 2
"1 2"
q)-3!(enlist 1),2
"1 2"

Это становится довольно раздражающим при работе со списками как структурами данных, представляющими наборы, а затем наборы наборов и т. Д., Поэтому я должен определить

q)app:{(enlist x) , enlist y}
q)-3!app[1;2]
"1 2"
q)-3!app[1;enlist 2]
"(1;,2)"
q)-3!app[enlist 1;enlist 2]
"(,1;,2)"
q)-3!app[enlist 1;2]
"(,1;2)"

, который ведет себя "как ожидалось" (от статически типизированного pov, который есть). Вопрос в том, существует ли такой встроенный оператор, а если нет, то почему?

1 Ответ

0 голосов
/ 16 апреля 2019

Отвечаю сам. Эта операция enlist из двух (или более) аргументов:

q)-3!enlist[1;2]
"1 2"
q)-3!enlist[1;enlist 2]
"(1;,2)"
q)-3!enlist[enlist 1;enlist 2]
"(,1;,2)"
q)-3!enlist[enlist 1;2]
"(,1;2)"
...