如何对 kdb 列表中的连续相同数字求和?

How to sum consecutive identical numbers in a list in kdb?

我有一个这样的列表:

a:1 1 1 1 2 3 1 1 4 4 4 5 6 4

如何将a中所有连续相同的数字相加,使其成为:

a:4 2 3 2 12 5 6 4

方法有很多种-一种方法:

q) a:1 1 1 1 2 3 1 1 4 4 4 5 6 4
q) sum each where[differ a] _ a
    4 2 3 2 12 5 6 4

使用 prev & <> 实现此目的的另一种方法:

sum each cut[where a<>prev[a]; a]
4 2 3 2 12 5 6 4