open Leibniz let () = print_endline "physics: kinetic energy\n"; let ke = Parser.parse "0.5 * m * v^2" in print_endline ("KE = " ^ Expr.to_string ke); let dke_dv = Diff.diff "v" ke in print_endline ("dKE/dv = " ^ Expr.to_string dke_dv); print_endline "\nphysics: circular motion\n"; let circumference = Parser.parse "2 * pi * r" in print_endline ("C = " ^ Expr.to_string circumference); let dc_dr = Diff.diff "r" circumference in print_endline ("dC/dr = " ^ Expr.to_string dc_dr); let r_val = 5.0 in let c_val = Eval.eval [("r", r_val)] circumference in Printf.printf "C(%.1f) = %.4f\n" r_val c_val