fold_left est un outil merveilleux quand on sait s'en servir. Tiens regarde :
Et hop, la fonction cardinal est faite .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 List.fold_left (fun a _ -> succ a) 0 [5;3;9;4] - : int = 4
L'idée est de comprendre que List.fold_left × [u1;u2;u3; ... u_n] est équivalent à (((u0 × u1) × u2) × ...) × u_n où × est un opérateur quelconque (ou plus généralement une fonction de type 'a -> 'b -> 'a).
Partager