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.