0

我有一个数据哈希图,键是字符串描述,值是整数权重。

{:a 2 :b 3 ......}

我需要将哈希转换为向量的向量。每个内部向量都包含映射条目。

[[[:a 2][:b 3]...][......]]

每个内部向量都是根据一些规则构建的。例如,所有重量的总和不应超过某个值

通常,这对于将哈希转换为映射条目向量向量的 reduce 来说似乎是一个很好的案例。但是,我可能需要多次迭代哈希,因为我可能需要重新洗牌内部向量之间的条目,以便所有向量总和为某个 num。

关于我应该如何建模问题的任何建议?

4

1 回答 1

0

好吧,对于初学者来说,Clojure 映射已经是向量序列。所以reduce 不需要:

=> (for [e {:a 1 :b 2}] e)
([:a 1] [:b 2])

不要将其视为“迭代”,您应该采用定义一个函数的方法,该函数接受您的输入向量并返回一个带有调整的新序列。递归调用此函数,直到达到您需要的总和。

于 2013-04-13T18:36:36.033 回答