Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- scala> List(1,2,3,4).iterator.map((x: Int) => println(x))
- 1
- 2
- 3
- 4
- List(1,2,3,4).map((x: Int) => println(x))
- List(1,2,3,4).foreach((x: Int) => println(x))
- List(1,2,3,4).iterator.foreach((x: Int) => println(x))
- def lazyMap[T, U](coll: Iterable[T], f: T => U) = new Iterable[U] {
- def iterator = coll.iterator map f
- }
- scala> lazyMap(List(1,2,3,4), (x: Int) => x + 1)
- res4: java.lang.Object with Iterable[Int] = (2, 3, 4, 5)
- scala> List(1,2,3,4).iterator.map((x: Int) => println(x))
- res0: Iterator[Unit] = non-empty iterator
- // nothing actually happened yet, just remember to do this printing things
- scala> res0.toList
- 1
- 2
- 3
- 4
- res1: List[Unit] = List((), (), (), ())
- scala> { lazyMap(List(1,2,3,4), {(x: Int) => println(x); x + 1}); 1 }
- scala> val itr = List(1,2,3).iterator
- itr: Iterator[Int] = non-empty iterator
- scala> val mappedItr = itr.map((x: Int) => println(x))
- mappedItr: Iterator[Unit] = non-empty iterator
- scala> mappedItr.next
- 1
- scala> mappedItr.next
- 2
Add Comment
Please, Sign In to add comment