la solution récursive pour le 3) est en fait bourrine car factorielle n'est pas récurtive terminale donc ça va vite mener à un débordement de pile : (j'ai remplaçé * par + car facterielle de 100000 ça tient pas en 31 bits)
Objective Caml version 2.01
# let rec f = function 0 -> 0 | n -> n + f (n - 1) ;;
val f : int -> int = <fun>
# f 100000 ;;
Stack overflow during evaluation (looping recursion?).
# let f' n = let s = ref 0 in for i = 1 to n do s := i + !s done ; !s ;;
val f' : int -> int = <fun>
# f' 100000 ;;
- : int = 705082704
[^] # Re: rafale de questions à propos des langages fonctionnels
Posté par Anonyme . En réponse à la dépêche Le concours de programmation ICFP 2001 est lancé!. Évalué à 0.
la solution récursive pour le 3) est en fait bourrine car factorielle n'est pas récurtive terminale donc ça va vite mener à un débordement de pile : (j'ai remplaçé * par + car facterielle de 100000 ça tient pas en 31 bits)
Objective Caml version 2.01
# let rec f = function 0 -> 0 | n -> n + f (n - 1) ;;
val f : int -> int = <fun>
# f 100000 ;;
Stack overflow during evaluation (looping recursion?).
# let f' n = let s = ref 0 in for i = 1 to n do s := i + !s done ; !s ;;
val f' : int -> int = <fun>
# f' 100000 ;;
- : int = 705082704