如何使用scalaz IList

时间:2016-12-15 09:58:09

标签: scalaz

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?     我尝试导入scalaz,但我仍然得到-1。

import scalaz._
import std.list._
List("hello", "world").indexWhere(_.length > 10) // -1 instead of None

1 个答案:

答案 0 :(得分:0)

val ilist = IList.fromList(List("hello", "world"))    
ilist.indexWhere(_.length > 10)  // None
ilist.indexWhere(_.length > 2)   // Some(0)