У меня есть List
...
scala> List(1, 2, 3)
res0: List[Int] = List(1, 2, 3)
И функция ...
scala> def foo(i : Int) : String = { println("Eval: " + i); i.toString + "Foo" }
foo: (i: Int)String
А теперь я буду использовать для понимания с Iterator
...
scala> for { i <- res0.iterator } yield foo(i)
res2: Iterator[java.lang.String] = non-empty iterator
Вы можете использовать для понимания любого типа с flatMap
, map
и filter
методами.Вы также можете использовать views :
scala> for { i <- res0.view } yield foo(i)
res3: scala.collection.SeqView[String,Seq[_]] = SeqViewM(...)
Оценка не является строгой в любом случае ...
scala> res3.head
Eval: 1
res4: String = 1Foo