Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open Num
- open Big_int
- open Ratio
- open Printf
- let divide a b =
- let q = quo_num a b in
- let r = mod_num a b in
- sprintf "q=%-2s r=%-2s" (string_of_num q) (string_of_num r)
- ;;
- let testall a b =
- let i x = Int x in
- let bi x = Big_int (big_int_of_int x) in
- let r x = Ratio (ratio_of_int x) in
- printf "/---------------------------------------------\\\n";
- printf "| %2d/%2d | Int | Big_int | Ratio |\n" a b;
- printf "|---------------------------------------------|\n";
- printf "| Int | %s | %s | %s |\n"
- (divide (i a) (i b))
- (divide (i a) (bi b))
- (divide (i a) (r b));
- printf "|---------------------------------------------|\n";
- printf "| Big_int | %s | %s | %s |\n"
- (divide (bi a) (i b))
- (divide (bi a) (bi b))
- (divide (bi a) (r b));
- printf "|---------------------------------------------|\n";
- printf "| Ratio | %s | %s | %s |\n"
- (divide (r a) (i b))
- (divide (r a) (bi b))
- (divide (r a) (r b));
- printf "\\---------------------------------------------/\n";
- ;;
- let sep () = printf "\n";;
- testall 5 3;;
- sep ();;
- testall (-5) 3;;
- sep ();;
- testall 5 (-3);;
- sep ();;
- testall (-5) (-3);;
Add Comment
Please, Sign In to add comment