読者です 読者をやめる 読者になる 読者になる

階乗

Erlang
#!/usr/bin/env escript
fact(0) -> 1;
fact(N) -> N * fact(N - 1).

main(_) ->
  N = fact(65535),
  io:format("~p~n", [N]).
real   0m11.969s
user    0m11.742s
sys 0m0.175s
#!/usr/bin/env escript
fact(N) -> fact(N, 1).

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

main(_) ->
  N = fact(65535),
  io:format("~p~n", [N]).
real   0m11.921s
user    0m11.781s
sys 0m0.095s