Kdb 如果我的变量存储从文件读取的数据,为什么它不受某些内置函数的影响?

Kdb 如果我的变量存储从文件读取的数据,为什么它不受某些内置函数的影响?,kdb,Kdb,我有一个名为01.in的文件,在运行q的同一个文件夹中。它包含一行,其中包含一串数字。例如,假设它包含以下字符串:1122 我从该文件中读取数据,将其转换为整数数字列表,并使用以下行将其存储在变量a中: a:("i"$read0 `:01.in)-"i"$"0" 现在,如果我尝试使用一些二元内置函数,如xprev或rotate,q解释器要么什么也不输出,要么输出原始列表。例如: q)a 1 1 2 2 q)-1 xprev a q)0 xprev a 1 1 2 2 q)1 xprev a

我有一个名为
01.in
的文件,在运行q的同一个文件夹中。它包含一行,其中包含一串数字。例如,假设它包含以下字符串:
1122

我从该文件中读取数据,将其转换为整数数字列表,并使用以下行将其存储在变量
a
中:

a:("i"$read0 `:01.in)-"i"$"0"
现在,如果我尝试使用一些二元内置函数,如
xprev
rotate
,q解释器要么什么也不输出,要么输出原始列表。例如:

q)a
1 1 2 2
q)-1 xprev a

q)0 xprev a
1 1 2 2
q)1 xprev a

q)-1 rotate a
1 1 2 2
q)0 rotate a
1 1 2 2
q)1 rotate a
1 1 2 2

如果我直接在列表
12
中使用这些函数,它们也可以工作。我正在努力理解为什么我所做的事情没有像我预期的那样有效。只是提醒一下:我对q非常陌生,因此如果这是我明显遗漏的内容,我向您道歉。

按照您读取文件的方式,您正在创建一个嵌套列表:

q)type a
0h
q)0N!a;
,1 1 2 2i
这里我使用
0N
要显示原始结构,
指示这是一个嵌套列表。相反,试着这样读:

q)a:"I"$'first read0`:01.in
q)a
1 1 2 2i
q)-1 xprev a
1 2 2 0Ni

通过读取文件的方式,可以创建嵌套列表:

q)type a
0h
q)0N!a;
,1 1 2 2i
这里我使用
0N
要显示原始结构,
指示这是一个嵌套列表。相反,试着这样读:

q)a:"I"$'first read0`:01.in
q)a
1 1 2 2i
q)-1 xprev a
1 2 2 0Ni