1

我正在学习 Kx 技术培训课程,有一句话说

“登记适用于所有数据对象;任何数据对象的结果都是一个项目列表,其项目就是该对象。例如”

 enlist(2 5;3.5 10 12)
    ,(2 5;3.5 10 12)

此结果不是浮点数的一维列表。相反,它是一个二维列表,唯一的元素是一个一维浮点列表

但是当我完全按照 QI 中的方式做这个例子时,我就不明白了。我明白了

enlist(2 5;3.5 10 12)
2 5 3.5 10 12

所以下面的作品,鉴于对假定结构的解释,我希望它不会起作用:

enlist(2 5;3.5 10 12)+1
3 6 4.5 11 13

这是怎么回事?

4

1 回答 1

5

这只是 q 控制台显示输出的方式。您的名单仍在登记中。

如果你做一个简单的计数,你会注意到不同之处:

q)count (2 5;3.5 10 12)            / a list with 2 elements
2
q)count enlist (2 5;3.5 10 12)     / a list with 1 element
1

甚至是一个简单的索引:

q)(2 5;3.5 10 12)0                 / get the first element of the list
2 5
q)enlist[(2 5;3.5 10 12)]0         / get the first element of the enlisted list
2 5
3.5 10 12

或者你可以切换到 k 控制台查看结果:

q)\
  (2 5;3.5 10 12)
(2 5;3.5 10 12)
  .q.enlist(2 5;3.5 10 12)
,(2 5;3.5 10 12)

运算符也+通过嵌套结构工作,这就是它不会出错的原因。

于 2014-11-12T15:55:14.287 回答