fun integrate (f,a,b,n) = if n <= 0 orelse b <= a then 0.0 else let val h = (b - a) / real n in h * ( f(a) + f(a+h) ) / 2.0 + integrate (f,a+h,b,n-1) end