let analytic(t0: f64) (time: f64): f64 = 20.0 + (t0 - 20.0) * f64.exp(-0.07*time) let cooling(_time: f64) (temperature: f64): f64 = -0.07 * (temperature-20.0) let main(t0: f64) (a: f64) (b: f64) (h: f64): []f64 = let steps = i32.f64 ((b-a)/h) let temps = replicate steps 0.0 let (_,temps) = loop (t,temps)=(t0,temps) for i < steps do let x = a + f64.i32 i * h let temps[i] = f64.abs(t-analytic t0 x) in (t + h * cooling x t, temps) in temps