• [^] # Re: Exemple judicieux ?

    Posté par . En réponse à la dépêche Apprendre la programmation fonctionnelle avec le MOOC OCaml. Évalué à 2.

    Pour que ce soit peut être plus clair, je mets le code dans le cas de listes et dans celui des arbres binaires. Essayes de voir en quoi il se ressemble dans la forme.

    type 'a list = Nil | Cons of 'a * 'a list
    type 'a tree = Leaf of 'a | Node of 'a tree * 'a tree
    let rec fold_list f g = function
     | Nil -> f
     | Cons (x, xs) -> g x (fold_list f g xs);;
    val fold_list : 'a -> ('b -> 'a -> 'a) -> 'b list -> 'a = <fun>
    let rec fold_tree f g = function
     | Leaf i -> f i
     | Node (l, r) -> g (fold_tree f g l) (fold_tree f g r);;
    val fold_tree : ('a -> 'b) -> ('b -> 'b -> 'b) -> 'a tree -> 'b = <fun>

    Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.