func compose(f, g) {
func(x) { f(g(x)) };
};
var fg = compose(func(x){Math.sin(x)}, func(x){Math.cos(x)});
say fg(0.5); # => 0.7691963548410084218525147580510688880995