• [^] # Re: optimisation et propagation de constante

    Posté par (site web personnel) . En réponse à la dépêche OCaml 4.06 et 4.07. Évalué à 3.

    Magnifique...

    let rec spower n x =
    if n = 0 then .<1>.
    else if n mod 2 = 0 then .<square .~(spower (n/2) x)>.
    else .<.~x * .~(spower (n-1) x)>.;;
    (* val spower : int -> int code -> int code = <fun> *)


    let spower7_code = .< fun x -> .~(spower 7 .< x >.)>.;;

    Je trouve cela particulièrement illisible. Et avec de la bête propagation de constante on aurait
    let spower7_code = spower 7

    "La première sécurité est la liberté"