Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open Big_int;;
- let f (ratio_create: Big_int.big_int -> Big_int.big_int -> Ratio.ratio) k =
- let rec aux_f numerator denominator =
- if eq_big_int denominator unit_big_int then numerator
- else
- begin
- let r = ratio_create numerator denominator in
- Format.printf "%s@." (Ratio.string_of_ratio r);
- if not (Ratio.is_normalized_ratio r)
- then Format.printf "Unnormalized@.";
- aux_f
- (succ_big_int (Ratio.numerator_ratio r))
- (pred_big_int (Ratio.denominator_ratio r))
- end
- in aux_f unit_big_int k
- ;;
- Format.printf "%s@.@."
- (string_of_big_int (f Ratio.create_ratio (big_int_of_int 20)));;
- Format.printf "%s@."
- (string_of_big_int (f Ratio.create_normalized_ratio (big_int_of_int 20)));;
Add Comment
Please, Sign In to add comment