PROGRAM 3
(* filename: prog8.sml author: anthony f. ortiz *)
(* this program computes fibonacci numbers. *)
fun fib (n: int): int =
if n = 0 then
1
else if n = 1 then
1
else
fib (n - 1) + fib (n - 2);
fun fib2 (i: int, j: int, k: int, n: int): int =
if k = n then
j
else
fib2 (j, i + j, k + 1, n);
fun ffib (n: int): int =
let val i = 0
and j = 1
and k = 0
in fib2 (i, j, k, n)
end;
fib (0);
fib (1);
fib (5);
fib (10);
fib (20);
ffib (0);
ffib (1);
ffib (5);
ffib (10);
ffib (20);
(* filename: prog8.out author: anthony f. ortiz *)
Standard ML of New Jersey, Version 110.0.6, October 31, 1999 [CM; autoload enabl
ed]
- use "prog8.sml";
[opening prog8.sml]
val fib = fn : int -> int
val fib2 = fn : int * int * int * int -> int
val ffib = fn : int -> int
val it = 1 : int
val it = 1 : int
val it = 8 : int
val it = 89 : int
GC #0.0.0.0.1.11: (0 ms)
val it = 10946 : int
val it = 1 : int
val it = 1 : int
val it = 8 : int
val it = 89 : int
val it = 10946 : int
val it = () : unit
- ^Z
Stopped (user)
BACK TO CS6140 PAGE.