Dyskusja:OCaml/Rekurencja i iteracje

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania

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;;

Rozpocznij dyskusję o stronie „OCaml/Rekurencja i iteracje”

Rozpocznij dyskusję