I like to have my code quite naively readable.
If I set up a simple list of tuples:
scala> val a = List(6, 8, 10)
a: List[Int] = List(6, 8, 10)
scala> val b = a zipWithIndex
b: List[(Int, Int)] = List((6,0), (8,1), (10,2))
I'd like to map() on the List, but I find the ._1 ._2 syntax a bit hard-to-read:
scala> val c = b map ( a => if(a._1 > 8) a._1 else a._2 )
c: List[Int] = List(0, 1, 10)
To 'name' the tuple, I've used:
scala> val c = b map ( { case (num, i) => if(num > 8) num else i } )
c: List[Int] = List(0, 1, 10)
Two questions:
1) Is there a more concise way to name the tuple members?
2) Is there a considerable performance hit for my version above (it is used in moderately performance-critical code).
Thanks.