PROGRAM 2
(* filename: prog7.sml author: anthony f. ortiz *)
(* the program converts nums to ints and ints to nums. *)
datatype num = zero | one_more_than of num;
fun num_to_int (zero) = 0
| num_to_int (one_more_than (n)) = num_to_int (n) + 1;
fun int_to_num (i: int): num =
if i <= 0 then
zero
else
one_more_than (int_to_num (i - 1));
num_to_int (zero);
num_to_int (one_more_than (zero));
num_to_int (one_more_than (one_more_than (zero)));
int_to_num (0);
int_to_num (1);
int_to_num (2);
(* filename: prog7.out author: anthony f. ortiz *)
Standard ML of New Jersey, Version 110.0.6, October 31, 1999 [CM; autoload enabl
ed]
- use "prog7.sml";
[opening prog7.sml]
datatype num = one_more_than of num | zero
val num_to_int = fn : num -> int
val int_to_num = fn : int -> num
val it = 0 : int
val it = 1 : int
val it = 2 : int
val it = zero : num
val it = one_more_than zero : num
val it = one_more_than (one_more_than zero) : num
val it = () : unit
BACK TO CS6140 PAGE.