//Using a closure: func apply(fun, fst) { snd => fun(fst, snd) } //Usage: func sum(x, y) { x + y } var sum2 = apply(sum, 2) var x = sum2(3) //x is 5 //By second argument func flip(fun) { (y, x) => fun(x, y) } func sub(x, y) { x - y } var sub3 = apply(flip(sub), 3) x = sub3(9) //x is 6