私は以下のScalaの機能、スカラ:算術要素でソート可能なコレクションの一般的な機能を記述する方法
def isValid(xs: Array[Int]): Boolean = {
val List(x, y, z) = xs.sorted.toList
x + y > z
}
を持っていると私はList[Double]
に入力タイプを変更すると、これはまだ動作します。私が望むのは、これがジェネリックコレクションと、比較して追加できるすべての要素で動作することです。
EDIT:これは私が現在一般的なものです。残念ながら、私はジェネリックパラメータを指定する必要があります。
def isValid[N, S <% Seq[N]](xs: S)(implicit n: Numeric[N]): Boolean = {
val Seq(x, y, z) = xs.sorted
n.gt(n.plus(x, y), z)
}
// Ideally, I wouldn't have to specify the generic parameters.
listOfArray.filter(isValid[Int, Array[Int]])
listOfList.filter(isValid[Double, List[Double]])
あなたは* * "ジェネリックコレクションと仕事" とはどういう意味ですか? 'Array [T]'は一般的なコレクションです。 –
@ YuvalItzchakov、私は、容器の要素だけでなく、容器そのものをパラメータ化したいと考えました。可能であれば、 'Array'と' List'と他のコンテナとの両方で動作するようにしたいと思います。 – Fysx