Как использовать скалаз 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)
Другие вопросы по тегам