Dyskusja:OCaml/Rekurencja i iteracje
Z Wikibooks, biblioteki wolnych podręczników.
Definicja f-cji Fibbonaciego jest zle zrobiona. Autor mowi, ze zwraca ona n-ta liczbe F. liczac od 0, ale
# fib 0;; - : int = 1 # fib 1;; - : int = 1 # fib 2;; - : int = 1 # fib 3 ;; - : int = 2
Podana f-cja liczy tak naprawde od 1. Nie znam sie na wiki, nie bede probowac zmieniac artykulu bo go rozwale ;p, ale kod powinien byc:
let fib x = let rec loop a b i = if i = 0 then a else let next = a + b in loop b next( i - 1 ) in loop 0 1 x;;