Bon, je réponds un peu tard et personne ne le verra, mais on peut pas laisser ça. On peut évidemment transformer la fonction pour qu'elle soit récursive terminale (avec un argument supplémentaire).
Objective Caml version 3.02
# let rec f acc = function 0 -> acc | n -> f (acc + n) (n - 1) ;;
val f : int -> int -> int = <fun>
# let f' = f 0 ;;
val f' : int -> int = <fun>
# f' 100000 ;;
- : int = 705082704
[^] # Re: rafale de questions à propos des langages fonctionnels
Posté par Vivi . En réponse à la dépêche Le concours de programmation ICFP 2001 est lancé!. Évalué à 1.
Objective Caml version 3.02
# let rec f acc = function 0 -> acc | n -> f (acc + n) (n - 1) ;;
val f : int -> int -> int = <fun>
# let f' = f 0 ;;
val f' : int -> int = <fun>
# f' 100000 ;;
- : int = 705082704