scala> val x = 2.0 x: Double = 2.0 scala> val xi = 0.5 xi: Double = 0.5 scala> val y = 4.0 y: Double = 4.0 scala> val yi = 0.25 yi: Double = 0.25 scala> val z = x + y z: Double = 6.0 scala> val zi = 1.0 / ( x + y ) zi: Double = 0.16666666666666666 scala> val numbers = List(x, y, z) numbers: List[Double] = List(2.0, 4.0, 6.0) scala> val inverses = List(xi, yi, zi) inverses: List[Double] = List(0.5, 0.25, 0.16666666666666666) scala> def multiplier = (n1: Double, n2: Double) => (m: Double) => n1 * n2 * m multiplier: (Double, Double) => (Double) => Double scala> def comp = numbers zip inverses map multiplier.tupled comp: List[(Double) => Double] scala> comp.foreach(f=>println(f(0.5))) 0.5 0.5 0.5