(* Multiplication des éléments d'une liste d'entiers, en s'arrêtant dès qu'on trouve un 0. *) (* Une version simple peut être *) let rec mult = function [] -> 1 0 :: _ -> 0 x :: l -> x * mult l (* Notes : - On s'arrête effectivement lorsque l'on trouve un zéro, mais on a tout de même effectué toutes les multiplications des éléments précédents, inutilement. Voir l'exercice 2.17 pour y remédier. - On consomme un espace de pile proportionnel à la longueur de la liste. Voir l'exercice 2.18 pour y remédier. *)
This document was generated using caml2html