(* calculo da derivada dum polinómio de grau positivo ou nulo - 
o polinómio é dado como uma lista ordenada  dos seus coeficientes 
(o valor 0 representa a ausência deste grau)

por exemplo o polinómio 3x^4+5x^2+1 é dado pela lista
[3.0;0.0;5.0;0.0;1.0] 
*)

let rec deriv_poli_aux n l acc = 
match l with 
  []  | [_]-> List.rev acc
| el::li -> let res = (el*.(float_of_int n)) in
            (deriv_poli_aux (n-1) li (res::acc))

let rec deriv_poli l = (deriv_poli_aux (List.length l -1) l [])

(*um teste para experimentar no toplevel *)
let derivada = deriv_poli [3.0;0.0;5.0;0.0;1.0];;

This document was generated using caml2html