鉴于许多event
基准都是:
{:a "a"
:b [{:a "a2" :c "c2"} {:a "a3" :c "c3"}]
:c "ignore"}
我想按用户指定的维度集计算所有分组。
如果我希望维度为:a
以及内部:a
和:c
值,则此数据包含以下分组:
[["a" "a2" "c2"]
["a" "a3" "a3"]]
请注意:b
包含一个序列,而该序列又需要被解构,因此定期的Clojure解构不足以得到结果。
(let [{:keys [a b]} the-data]
(for [{a2 :a, c2 :c} b]
[a a2 c2]))
在这种情况下产生所需的输出。
是否有数据驱动方式来表达这一点?某种查询?幽灵?或者一些数据结构可以通常翻译为let / for?
例如,表示它的一种方法可能是伪解构:
{a :a
[:a :c] :b}
并有一些自定义代码来解释它。这将允许安全用户输入维度以生成分组。
简而言之,指定这样一个"分组"的好方法是什么?用数据查询?