阅读本页http://code.kx.com/q4m3/6_Functions/#64-projection
(1#) each 1001 1002 1004 1003
1001 1002 1004 1003 每个[1#] 1001 1002 1004 1003 1001 1002 1004 1003
1#是什么意思?我理解投影的概念,但是什么是1#?
答案 0 :(得分:2)
#
表示在RHS参数中取1
个each
元素。 take的结果也是一个列表,因此在这种情况下,您会得到一个列表,其中每个子列表的长度为1。
q) (1#) each 1001 1002 1004 1003
1001
1002
1004
1003
答案 1 :(得分:2)
这也是一个预测。 “#”是一个称为“take”的二元函数,它返回一个列表。
参考:http://code.kx.com/q/ref/lists/#take
例如:
q> #[2;(1 2 3 4)]
输出:
1 2
简表:2#(1 2 3 4)
我们可以通过修复第一个参数来预测它:
q> f:#[2;]
q> f 1 2 3 4
输出:1 2
在您的情况下,固定参数为1。
q>f:#[1;]
并使用“each”
将其应用于列表的每个元素 q>(f each 1001 1002 1004 1003) ~ (1#) each 1001 1002 1004 1003
输出:1b
它会将每个元素转换为一个列表,该列表相当于在每个元素上调用enlist:
q> (enlist each 1001 1002 1004 1003) ~ (1#) each 1001 1002 1004 1003
输出:1b