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.