Which one is faster performance wise. How can a view make it faster in this case?
def f(arr: List[Int]): List[Int] =
arr.zipWithIndex.filter(_._2 % 2 == 1).map(_._1)
def f(arr: List[Int]): List[Int] =
arr.view.zipWithIndex.filter { _._2 % 2 != 0 }.map(_._1).toList
def f(arr: List[Int]): List[Int] =
arr.view.zipWithIndex.collect { case (a, b) if (b % 2 == 0) => a }.toList