Как использовать скалаз IList
scala.collection.immutable.List определяет indexWhere
, который возвращает индекс первого элемента этой общей последовательности, который удовлетворяет предикату p или -1, если ни один не существует:
def indexWhere(p: (A) ⇒ Boolean): Int
Итак, я могу использовать:
List("hello", "world").indexWhere(_.length > 10) // -1
Тем не менее, я бы предпочел получить Option[Int]
, Я вижу, что это реализовано в scalaz.IList:
def indexWhere(f: A => Boolean): Option[Int]
Как я могу использовать scalaz.IList.indexWhere
? Я попытался импортировать скаляр, но все равно получаю -1.
import scalaz._
import std.list._
List("hello", "world").indexWhere(_.length > 10) // -1 instead of None
1 ответ
Решение
val ilist = IList.fromList(List("hello", "world"))
ilist.indexWhere(_.length > 10) // None
ilist.indexWhere(_.length > 2) // Some(0)