Retourner au contenu associé (dépêche : Apprendre un langage de programmation par an)
Posté par Xavier Maillard le 21 décembre 2010 à 22:55. En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.
-module(m). -export([fact/1]). fact(0) -> 1. fact(N) when N>0 -> N * fact(N-1);
-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).
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Erlang
Posté par Xavier Maillard . En réponse à la dépêche Apprendre un langage de programmation par an. Évalué à 3.
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).