scala 2つList[Int]をList[(Int,Int)]にzipする

zipを使う

[code lang=text] scala> val a = List(1,2,3,4,5) a: List[Int] = List(1, 2, 3, 4, 5)

scala> val b = List(10,20,50,60,10) b: List[Int] = List(10, 20, 50, 60, 10)

scala> a zip b res2: List[(Int, Int)] = List*1 [/code]

結合したもの同しを掛け算したい _1でとってもいいし、タプルで受け取って計算しても良い、タプルの場合はcaseを書く

[code lang=text] scala> (a zip b).map(x => x.1 * x.2) res3: List[Int] = List(10, 40, 150, 240, 50)

scala> (a zip b).map{case (x,y) => x * y} res4: List[Int] = List(10, 40, 150, 240, 50) [/code]

*1:1,10), (2,20), (3,50), (4,60), (5,10