KDB+/Q:下面的代码是如何工作的? q) 16 16#"c"$直到 256`

KDB+/Q : How does the following code work ? q) 16 16#"c"$til 256`

下面的代码在 kdb+/q 中是如何工作的,具体来说,第一个 16 是做什么的?

q)16 16#"c"$til 256

til 256 创建一个列表 0 .. 255,"c"$ 将每个条目转换为类型 char,并且 16# 获取前 16 个元素,但是首先 16 做什么?

尽管这是此处引用的示例,但我在文档中的任何地方都看不到这一点:https://code.kx.com/q4m3/4_Operators/#433-order

# 运算符将 select 列表或字典中的前导或尾随项目

x#y     #[x;y]

其中 x 是一个 int 原子或向量,或者 table; y 是原子、列表、字典、table 或键控 table

在你的例子中,x 是一个向量,returns 是一个矩阵或更高维的数组,例如

q)2 4#`Arthur`Steve`Dennis
Arthur Steve  Dennis Arthur
Steve  Dennis Arthur Steve**

通过拆分您的示例,您可以看到从数组返回的第一行和最后一行

q)16#"c"$til 256
"[=12=]0[=12=]1[=12=]2[=12=]3[=12=]4[=12=]5[=12=]6[=12=]70\t\n34\r67"
q)-16#"c"$til 256
"0123456701234567"

了解更多 https://code.kx.com/q/ref/take/