好吧,所以我認爲這將是一個單元,試圖實踐斯卡拉的收集操作員,我的例子是一個點列表。使用foldleft或其他運算符來計算點距離?
該類可以計算並返回到另一個點的距離(如雙倍)。
但是,摺疊左側似乎不是正確的解決方案 - 考慮元素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)=>)
}
感謝您捕捉我的^錯誤,我曾想過也許這是爲了匹配函數的概念。你可以請進一步解釋「壓縮」是什麼 - 看起來「拉鍊」也起作用,我無法在Seq API上找到更多細節,或者它與zip不同。 – LaloInDublin
這是Tuple2上的一種方法。請參閱http://stackoverflow.com/q/7068031/770361並鏈接回答或發佈其他問題! –