compose.go 283 B

1234567891011121314151617
  1. // compose.go
  2. package main
  3. import (
  4. "fmt"
  5. "math"
  6. )
  7. func Compose(f, g func(x float64) float64) func(x float64) float64 {
  8. return func(x float64) float64 { // closure
  9. return f(g(x))
  10. }
  11. }
  12. func main() {
  13. fmt.Print(Compose(math.Sin, math.Cos)(0.5)) // output: 0.7691963548410085
  14. }