2016-12-05 23:44:36 +01:00
|
|
|
func compose(f,g) {
|
|
|
|
|
func (*args) {
|
2017-09-23 10:01:46 +02:00
|
|
|
f(g(args...))
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2017-09-23 10:01:46 +02:00
|
|
|
var cube = func(a) { a.pow(3) }
|
|
|
|
|
var croot = func(a) { a.root(3) }
|
2016-12-05 23:44:36 +01:00
|
|
|
|
2017-09-23 10:01:46 +02:00
|
|
|
var flist1 = [Num.method(:sin), Num.method(:cos), cube]
|
|
|
|
|
var flist2 = [Num.method(:asin), Num.method(:acos), croot]
|
2016-12-05 23:44:36 +01:00
|
|
|
|
2017-09-23 10:01:46 +02:00
|
|
|
for a,b (flist1 ~Z flist2) {
|
|
|
|
|
say compose(a, b)(0.5)
|
2016-12-05 23:44:36 +01:00
|
|
|
}
|