kdb: longList@dictionary 行为
kdb: longList@dictionary behavior
q)(`a`b`c!101 0N 103)~100 101 102 103 104@`a`b`c!1 5 3
1b
我注意到下面两行是等价的
100 101 102 103 104@`a`b`c!1 5 3
`a`b`c!100 101 102 103 104@1 5 3
- 一般来说
a@b!c
等价于 b!a@c
吗?
- 在 overloaded glyphs page for
@
上,这种用法是 Index At
还是 Apply At
还是其他?对于 x@y
,当 y
是字典时,是否有关于确切行为的文档?
适用于列表的操作也适用于恰好是字典值的列表(它“通过”字典应用并保持键不变)。例如:
q)1+`a`b!1 2
a| 2
b| 3
q)2*`a`b!1 2
a| 2
b| 4
因此 index at
将以相同的方式应用:
q)10 20 30@`a`b!1 2
a| 20
b| 30
因为它与:
q)10 20 30@1 2
20 30
- 如果
a@c
没有意义,a@b!c
并不总是等同于 b!a@c
。例如
q)10 20 30@1.1 2.2
'type
[0] 10 20 30@1.1 2.2
^
q)10 20 30@`a`b!1.1 2.2
'type
[0] 10 20 30@`a`b!1.1 2.2
^
仅当索引的基础数据类型为 boolean/short/int/long 时才为真。
- 上面回答的主要是
index at
。当 y 是字典时没有明确的文档,因为当 y 是列表时它本质上是相同的行为
q)(`a`b`c!101 0N 103)~100 101 102 103 104@`a`b`c!1 5 3
1b
我注意到下面两行是等价的
100 101 102 103 104@`a`b`c!1 5 3
`a`b`c!100 101 102 103 104@1 5 3
- 一般来说
a@b!c
等价于b!a@c
吗? - 在 overloaded glyphs page for
@
上,这种用法是Index At
还是Apply At
还是其他?对于x@y
,当y
是字典时,是否有关于确切行为的文档?
适用于列表的操作也适用于恰好是字典值的列表(它“通过”字典应用并保持键不变)。例如:
q)1+`a`b!1 2
a| 2
b| 3
q)2*`a`b!1 2
a| 2
b| 4
因此 index at
将以相同的方式应用:
q)10 20 30@`a`b!1 2
a| 20
b| 30
因为它与:
q)10 20 30@1 2
20 30
- 如果
a@c
没有意义,a@b!c
并不总是等同于b!a@c
。例如
q)10 20 30@1.1 2.2
'type
[0] 10 20 30@1.1 2.2
^
q)10 20 30@`a`b!1.1 2.2
'type
[0] 10 20 30@`a`b!1.1 2.2
^
仅当索引的基础数据类型为 boolean/short/int/long 时才为真。
- 上面回答的主要是
index at
。当 y 是字典时没有明确的文档,因为当 y 是列表时它本质上是相同的行为