首页 > 解决方案 > 找到最小的内部理解?

问题描述

我有两个包含 GPS 坐标的列表,我想在这两个列表中找到坐标之间的最短距离。现在我已经遍历列表并将每个距离存储到另一个列表中,如下所示:

val distanceList = for {
        c1 <- cordinatesList1
        c2 <- cordinatesList2
        distace = calculateDistances(c1, c2)

    } yield distance

现在我可以从 中得到最小值,但是有没有在不存储所有距离的情况下distanceList找到最小值?for-comprehension

标签: scala

解决方案


它不能在内部完成,for但可以在外部完成,如果评估是懒惰的,则不会保存中间结果。

(for {
  c1 <- cordinatesList1.toStream
  c2 <- cordinatesList2
} yield calculateDistances(c1,c2)).min

推荐阅读