什麼是使用scala驗證更大列表值的最佳方法?比較兩個列表 - Scala
例如:
驗證是否List(1, 2, 3)
大於List(2, 3, 4)
我試圖創建一個函數:
def listGt[T](li:List[T], l2:List[T]) = li > l2
但我得到的消息:錯誤:值>不是一個構件列表[T]
什麼是使用scala驗證更大列表值的最佳方法?比較兩個列表 - Scala
例如:
驗證是否List(1, 2, 3)
大於List(2, 3, 4)
我試圖創建一個函數:
def listGt[T](li:List[T], l2:List[T]) = li > l2
但我得到的消息:錯誤:值>不是一個構件列表[T]
對於complex reasons,你必須做一個imp
import Ordering.Implicits._
一旦你這樣做的生活是幸福的:比較List
和許多其他收藏品之前ORT
List(1) < List(2) // true
List(List(2), List(1)).sorted // swaps order as expected
工作就像一個魅力!謝謝! – Diullei
如果你想要的3D矢量以下可能返回不是你想要的東西比較長:
import Ordering.Implicits._
println(List(2, 3, 4) > List(-2, -3, -4)) // prints true, but lengths are equal
可能是這將滿足:
object Main {
def main(args: Array[String]): Unit = {
val res = listGt(List(1, 2, 3), List(2, 3, 4))
println(res) // false
val res2 = listGt(List(2, 3, 4), List(1, 2, 3))
println(res2) // true
}
implicit def coordsToLength[T <% Double](li: List[T]) = math.sqrt(li.foldLeft(0.0)(_ + math.pow(_, 2)))
def listGt[T <% Double](li: List[T], l2: List[T]) = li > l2
}
不錯,謝謝! – Diullei
你需要列表'大小'。 –
@LimbSoup'size'函數返回列表長度。我試圖創建一個像clojure'compare'(http://clojuredocs.org/clojure_core/clojure.core/compare)的函數。 – Diullei
我明白了。目前還不清楚你的「名單價值」是什麼意思。在這種情況下,你可以使用'sum'來輸入數字。對於其他類型,您需要定義「sum」的含義。 –