erlang function efficiency
1. match partten
do
map(_Map, [], Ys) -> Ys;
map(_Map, [_|_] = Xs, []) -> %% 1.1 do_not map(_Map, Xs, []) ->
Xs;
map(Map, [X | Xs], [Y|Ys]) ->
[Map(X,Y) | map(Map, Xs, Ys)].
1.1 因为第二个参数是可以匹配任何变量的。和函数编译优化相关
2. MFA 的用法:
F(A) 本地函数,最快
apply(Fun, A::[term()]) -> term() 是本地函数call的三倍花费
apply(Moudule::module(), Fun, A::[term()]) -> term() 是本地函数call的六倍花费