mltaylor.ml
1: (****************************************************************************** 2: * Calcul de l'expansion de Taylor d'un lambda-terme, programme principal 3: *****************************************************************************) 4: 5: open Lambda;; 6: open Diff;; 7: open Taylor;; 8: 9: let args_list = [];; 10: let usage_msg = " 11: Usage: mltaylor t [t0] 12: 13: Appelé avec un seul argument, rend la forme normale de t. 14: Avec deux arguments t0 est un linéarisé de la forme normale de t ; rend le 15: linéarisé correspondant de t. 16: ";; 17: 18: let input_term = ref Star;; 19: let got_term = ref false;; 20: let input_diff = ref DiffStar;; 21: let got_diff = ref false;; 22: 23: if Array.length Sys.argv <= 1 or Array.length Sys.argv > 3 24: then 25: begin 26: prerr_endline usage_msg; 27: exit 1 28: end; 29: 30: ( 31: try 32: input_term := lambda_of_string Sys.argv.(1); 33: got_term := true 34: with 35: Stream.Error(s) -> 36: begin 37: prerr_endline ("Syntax error in term: " ^ s); 38: exit 1 39: end 40: ); 41: 42: ( 43: if Array.length Sys.argv = 3 44: then try 45: input_diff := diff_of_string Sys.argv.(2); 46: got_diff := true 47: with 48: Stream.Error(s) -> 49: begin 50: prerr_endline ("Syntax error in diff term: " ^ s); 51: exit 1 52: end 53: ); 54: 55: ( 56: if not !got_diff 57: then 58: try 59: let normal = normalize !input_term 60: in 61: print_endline (string_of_lambda normal) 62: with Failure(s) -> 63: prerr_endline ("Exec error: " ^ s); 64: exit 1 65: else 66: try 67: let taylor = diff_of_term !input_term !input_diff 68: in 69: print_endline (string_of_diff taylor) 70: with Failure(s) -> 71: prerr_endline ("Exec error: " ^s); 72: exit 1 73: ); 74: 75: exit 0 76: ;;
This document was generated using caml2html