Mindblock здесь, но я не могу понять, как сделать это менее уродливо:
def getClosestSphere(ray: Ray, spheres: List[Sphere]): Sphere = {
val map = new HashMap[Double, Sphere]
for (sphere <- spheres) {
val intersectPoint = sphere.intersectRay(ray)
map.put(intersectPoint, sphere)
}
map.minBy(_._1)._2
}
Ты видишь, что я делаю? У меня есть список сфер, где каждая сфера имеет метод intersectRay, возвращающий двойной.
Я хочу взять Сферу с наименьшим результатом этой функции. Я ЗНАЮ, что есть хорошая функциональная конструкция, позволяющая мне делать это в одну строку, я просто не вижу ее: (