参照と繰り返しの構文(while,for)を使ってフィボナッチ数を求める関数を定義しなさい。
# let fib n = let fibs = ref (1, 1) in let i = ref 1 in while !i < n do fibs := (snd !fibs, fst !fibs + snd !fibs); i := !i + 1 done; snd !fibs ;; val fib : int -> int = <fun>
初項を第0項とした。
# fib 0;; - : int = 1 # fib 1;; - : int = 1 # fib 2;; - : int = 2 # fib 3;; - : int = 3 # fib 4;; - : int = 5 # fib 5;; - : int = 8 # fib 6;; - : int = 13