私はタプルの最初の要素によって降順にソートされたスカラリストを持っています。 私は以下のようないくつかの操作を試してみました。リストからいくつかの要素を返すことができます。 List()
scala> val l = List((95,6),(10,2),(8,5))
l: List[(Int, Int)] = List((95,6), (10,2), (8,5))
scala> l.filterNot({case (x,y)=>x/5<2})
res6: List[(Int, Int)] = List((95,6), (10,2))
scala> l.filterNot({case (x,y)=>x/5<200})
res7: List[(Int, Int)] = List()
私はラップして返すことができるユーティリティメソッドを書いて、リストの最初の要素のOption型をタプルにする filterNot
リストをList()に空にしていない。もし filterNot
私にList()を与え、ただ返したい。もし filterNot
私に List
私はOption(l(0))をしたい。私は小切手の場合は定期的にそれを行うことができますが、私はそれをもっと機能的なやり方でどうやってやっているのだろうと思っていましたか?
回答:
回答№1は4より良い選択肢は、 List.find
これは述語をとり、最初の一致を返します:
scala> l find { case (x, y) => x / 5 >= 2 }
res5: Option[(Int, Int)] = Some((95,6))
scala> l find { case (x, y) => x / 5 >= 200 }
res6: Option[(Int, Int)] = None
私は述語を否定していないので、それよりも小さいものを逆にしました。