.. highlight:: go functions3.go ============= :: // functions3.go package main import ( "fmt" "math" ) func derivative(f func(float64) float64, a, h float64) float64 { return (f(a+h) - f(a)) / h } func main() { fmt.Println(derivative(math.Sqrt, 2, 0.001)) fmt.Println(derivative(math.Sin, 2, 0.001)) f := func(x float64) float64 { return x*x*x - x } fmt.Println(derivative(f, 2, 0.001)) fmt.Println(derivative(func(x float64) float64 { return 1 / x }, 2, 0.001)) }