• [^] # Re: Erlang

    Posté par . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.

    Je me permets de te corriger pour ta fonction fact qui est "montée" à l'enver :)

    On écrit plutot:


    -module(m).
    -export([fact/1]).

    fact(0) -> 1.
    fact(N) when N>0 -> N * fact(N-1);


    et pour davantage de performances, on utilise une fonction tail recursive (avec un petit accumulateur):


    -module(m).
    -export([fact/1]).

    fact(N) -> fact(N,1).
    fact(0,Ac) -> Ac;
    fact(N,Ac) when N > 0 -> fact(N-1,N*Ac).