Javascriptで関数プログラミングの勉強。
nの階乗を計算。
ループを使った場合:
function fact(n) {
for (var r=1; n>0; n--)
r *= n;
return r;
}
fact(16) -> # 20922789888000
再帰を使った場合:
function fact2(n) {
return n == 0 ? 1 : n * fact2(n-1)
}
fact2(16) -> # 20922789888000
うーん、再帰で書くコツが全然わからん・・・。
|