如何在 KDB 中设置累加器的初始值?
How do I set the initial value of an accumulator in KDB?
我写了一个函数 r
表示功能状态 s
更新,形式为 s: r[s;q]
我试图让它扫描整数列表 q
,但我遇到的问题是扫描 /
的应用程序消耗了列表,而不是初始状态 s
。结果应该是状态列表。
我做错了什么?
实际代码:
a: 5+cos (til 20)
s: `peg`ent`exi!3#enlist[::]
r: {[s;q]
l: 0.9; h: 1.1;
init: `peg`ent`exi!({null x};{null x}; {null x});
s1: `peg`ent`exi!({not null x};{null x}; {null x});
s2: `peg`ent`exi!({not null x};{not null x}; {null x});
s: $[all init@'s; s, enlist[`peg]!enlist[q];s];
s: $[(all s1@'s) & q<l*s[`peg]; s, enlist[`ent]!enlist[q];s];
s: $[(all s2@'s) & q>h*s[`peg]; s, enlist[`exi]!enlist[q];s];
s
}
r scan a
答案是将列表的第一个值设置为状态:
r scan enlist[s], a
我写了一个函数 r
表示功能状态 s
更新,形式为 s: r[s;q]
我试图让它扫描整数列表 q
,但我遇到的问题是扫描 /
的应用程序消耗了列表,而不是初始状态 s
。结果应该是状态列表。
我做错了什么?
实际代码:
a: 5+cos (til 20)
s: `peg`ent`exi!3#enlist[::]
r: {[s;q]
l: 0.9; h: 1.1;
init: `peg`ent`exi!({null x};{null x}; {null x});
s1: `peg`ent`exi!({not null x};{null x}; {null x});
s2: `peg`ent`exi!({not null x};{not null x}; {null x});
s: $[all init@'s; s, enlist[`peg]!enlist[q];s];
s: $[(all s1@'s) & q<l*s[`peg]; s, enlist[`ent]!enlist[q];s];
s: $[(all s2@'s) & q>h*s[`peg]; s, enlist[`exi]!enlist[q];s];
s
}
r scan a
答案是将列表的第一个值设置为状态:
r scan enlist[s], a