Е
Size: a a a
Е
LL
ŹR
Е
ŹR
LL
Е
ŹR
Е
Е
Е
defmodule Fact do
def calc(1), do: 1
def calc(n), do: calc(n-1) * n
end
defmodule FactTail do
def calc(1), do: 1
def calc(n), do: calc(n, 1)
def calc(1, n1), do: n1
def calc(n, n1), do: calc(n - 1, n * n1)
end
Е
Е
ŹR
Name ips average deviation median 99th %
body 0.164 6.10 s ±0.00% 6.10 s 6.10 s
tco 0.161 6.22 s ±0.00% 6.22 s 6.22 s
Comparison:
body 0.164
tco 0.161 - 1.02x slower +0.115 s
ŹR
Е
:timer.tc(Fact, :calc, [1000])
{708, 402...}
:timer.tc(FactTail, :calc, [1000])
{815, 402...}
Е
Е
%{элемент => кол-во повторов}
Е
ŹR