Scala应用函数列表并通过输入获得最高结果的方式

时间:2017-02-16 13:36:20

标签: scala functional-programming

best_acc = 0
for split in split_candidates:
    acc = self.get_split_score(t_series_distances, split)
    if acc > best_acc:
        best_acc = acc
        best_split = split
return best_acc, best_split

scala的做法是什么?我需要将get_split_score函数应用于集合并获取此函数输出的最高值以及导致此输出的输入(原始列表中的元素)。

1 个答案:

答案 0 :(得分:5)

您可以使用map构建一系列(score, split)对,然后使用maxBy查找得分最高的一对:

splitCandidates.map(c => (getSplitScore(tSeriesDistances, c), c)).maxBy(_._1)