我不明白当将 where 应用于整数列表(或具有 int 值的字典)时会做什么:
where til 4
/ 1 2 2 3 3 3
where `a`b`c`d!til 4
/ `b `c `c `d `d `d
返回值的模式相同,但我不确定应用的操作是什么。我终于明白了《银河系漫游指南》中关于 42 的全部内容……在这个用例中,“哪里”回答了什么问题?
我不明白当将 where 应用于整数列表(或具有 int 值的字典)时会做什么:
where til 4
/ 1 2 2 3 3 3
where `a`b`c`d!til 4
/ `b `c `c `d `d `d
返回值的模式相同,但我不确定应用的操作是什么。我终于明白了《银河系漫游指南》中关于 42 的全部内容……在这个用例中,“哪里”回答了什么问题?
对于列表 x 中的每个项目,其中取索引 i 的 n 个副本,其中 n 是正整数。因此,在您的示例中
它占用索引 0 的 0 倍(因此未显示),占用索引 1 的 1 倍,占用索引 2 的 2 倍,最后占用索引 3 的 3 倍。
这适用于任何序列
这就是为什么
where
完美地与布尔掩码配合并返回所有真实索引的索引0 次索引 0,1 次索引 1,0 次索引 2,依此类推。现在,KDB/Q 字典中的字典以及表(表只是翻转的列字典)都是一等公民,这意味着所有运算符都将在其值部分上工作(字典是键(索引)-值映射)
其中现在取索引或键 a 的 0 倍、索引或键 b 的 1 倍、索引 c 的 2 倍和索引 d 的 3 倍。
我希望这会有所帮助,如果仍然不清楚,请告诉我。