RosettaCodeData/Task/Call-a-function/Dyalect/call-a-function-12.dyalect

16 lines
290 B
Plaintext

//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