好的,所以我认为这很容易,尝试练习 Scala 的集合运算符,我的示例是点列表。
该类可以计算并返回到另一个点的距离(作为双精度)。
但是,向左折叠似乎不是正确的解决方案 - 考虑到元素 e1、e2、e3.. 我需要一个移动窗口来计算,我需要查看最后一个元素以在函数中结转 - 而不仅仅是总和
Sum {
e1.dist(e2)
e2.dist(e3)
etc
}
阅读 API,我注意到一个名为“滑动”的函数,也许这是与另一个运算符结合使用的正确解决方案。我当然知道如何使用循环来做到这一点,但尝试学习 scala 方式。
谢谢
import scala.math._
case class Point(x:Int, y:Int) {
def dist(p:Point) = sqrt( (p.x-x)^2+(p.y-y)^2 )
}
object Point {
//Unsure how to define this?
def dist(l:Seq[Point]) =l.foldLeft(0.0)((sum:Double,p:Point)=>)
}