2.5
def compose [A,B,C] (f: B => C, g: A => B): A => C
Solution
object HelloWorld {
def compose[A,B,C](f: B => C, g: A => B): A => C = {
a => f(g(a))
}
def main(args: Array[String]) = {
val double = (a:Int) => 2 * a
val toString = (a:Int) => "new value " + a
val c = compose(toString, double)
println("original value 2",c(2))
}
}
Run
(original value 2,new value 4)