计算 ListRelation 范围的总和
calculating sum of ListRelation range
我有一个名为 PLOC 的 ListRelation,类型为:
lrel[loc, int] PLOCs = [<a, calcPLOC(a)> | a <- files];
其中 files 是一组位置,calcPLOC 根据该位置计算一个整数。
现在我想要所有计算出的整数的总和。我用了 3 种不同的方法来计算这个,得到了 2 个不同的答案:
1:
total = 0;
for (<a, b> <- PLOCs) {
total += b;
}
println("total PLOC: <total>"); // returns 23805
2:
total = sum(range(PLOCs));
println("total PLOC: <total>"); // returns 21313
3:
total = (0 | it + b | <a, b> <- PLOCs);
println("total PLOC: <total>"); // returns 23805
为什么第二种方法 return 不同的结果?
ListRelation "squeezes" 中的范围函数排除了重复的条目,但保留了它们的顺序。
我有一个名为 PLOC 的 ListRelation,类型为:
lrel[loc, int] PLOCs = [<a, calcPLOC(a)> | a <- files];
其中 files 是一组位置,calcPLOC 根据该位置计算一个整数。
现在我想要所有计算出的整数的总和。我用了 3 种不同的方法来计算这个,得到了 2 个不同的答案:
1:
total = 0;
for (<a, b> <- PLOCs) {
total += b;
}
println("total PLOC: <total>"); // returns 23805
2:
total = sum(range(PLOCs));
println("total PLOC: <total>"); // returns 21313
3:
total = (0 | it + b | <a, b> <- PLOCs);
println("total PLOC: <total>"); // returns 23805
为什么第二种方法 return 不同的结果?
ListRelation "squeezes" 中的范围函数排除了重复的条目,但保留了它们的顺序。