Hornerjev algoritem/Implementacija (Ocaml)

Iz MaFiRaWiki

Rešitev s funkcijo Array.fold_left

  1. let horner a t = Array.fold_left (fun v c -> v *. t +. c) 0.0 a

Rešitev z zanko

  1. let horner a t =
  2. let v = ref 0.0 in
  3. for i = Array.length a - 1 downto 0 do
  4. v := !v *. t +. a.(i)
  5. done ;
  6. v

Rešitev s pomožno rekurzivno funkcijo

  1. let horner a t =
  2. let rec h v i = if i < 0 then v else h (v *. t +. a.(i)) (i-1) in
  3. h 0.0 (Array.length a - 1)
Osebna orodja